다음을 통해 공유


Kerberos 인증 문제 해결 지침

이 가이드에서는 Kerberos 인증 문제를 해결할 때 사용되는 기본 개념을 제공합니다.

문제 해결 검사 목록

  • Kerberos 관련 오류는 다른 서비스가 실패하는 증상입니다. Kerberos 프로토콜은 모든 인증이 수행되려면 사용 가능하고 제대로 작동해야 하는 많은 서비스를 사용합니다.

  • Kerberos 인증에 문제가 발생하는지 확인하려면 인증을 제공하는 클라이언트, 대상 서버 또는 도메인 컨트롤러에서 시스템 이벤트 로그에서 모든 서비스(예: Kerberos, kdc, LsaSrv 또는 Netlogon)의 오류를 확인합니다. 이러한 오류가 있는 경우 Kerberos 프로토콜과 관련된 오류도 있을 수 있습니다.

  • 대상 서버의 보안 이벤트 로그에 대한 오류 감사는 로그온 오류가 발생했을 때 Kerberos 프로토콜이 사용되고 있음을 표시할 수 있습니다.

  • Kerberos 프로토콜을 검사하기 전에 다음 서비스 또는 조건이 제대로 작동하는지 확인합니다.

    • 네트워크 인프라가 제대로 작동하며 모든 컴퓨터와 서비스가 통신할 수 있습니다.
    • 도메인 컨트롤러에 액세스할 수 있습니다. 클라이언트 또는 대상 서버에서 명령 nltest /dsgetdc:<Domain Name> /force /kdc (예: nltest /dsgetdc:contoso.com /force /kdc)을 실행할 수 있습니다.
    • DNS(도메인 이름 시스템)가 올바르게 구성되고 호스트 이름과 서비스를 적절하게 확인합니다.
    • 시계는 도메인 전체에서 동기화됩니다.
    • Windows Server에 대한 모든 중요 업데이트 및 보안 업데이트가 설치됩니다.
    • Microsoft 이외의 소프트웨어를 비롯한 모든 소프트웨어가 업데이트됩니다.
    • 서버 운영 체제를 실행하는 경우 컴퓨터가 다시 시작됩니다.
    • 필요한 서비스 및 서버를 사용할 수 있습니다. Kerberos 인증 프로토콜을 사용하려면 작동하는 도메인 컨트롤러, DNS 인프라 및 네트워크가 제대로 작동해야 합니다. Kerberos 프로토콜 문제 해결을 시작하기 전에 이러한 리소스에 액세스할 수 있는지 확인합니다.

이러한 모든 조건을 검사했으며 인증 문제 또는 Kerberos 오류가 여전히 있는 경우 솔루션을 더 자세히 확인해야 합니다. 이 문제는 Kerberos 프로토콜을 구성하는 방법 또는 Kerberos 프로토콜을 사용하는 다른 기술이 구성된 방식에 의해 발생할 수 있습니다.

일반적인 문제 및 솔루션

Kerberos 위임 문제

일반적인 시나리오에서 가장 계정은 웹 애플리케이션 또는 웹 서버의 컴퓨터 계정에 할당된 서비스 계정입니다. 가장된 계정은 웹 애플리케이션을 통해 리소스에 액세스해야 하는 사용자 계정입니다.

Kerberos를 사용하는 위임에는 다음 세 가지 유형이 있습니다.

  • 전체 위임(제한되지 않은 위임)

    전체 위임은 최대한 피해야 합니다. 사용자(프런트 엔드 사용자 및 백 엔드 사용자)는 서로 다른 도메인 및 다른 포리스트에 있을 수 있습니다.

  • 제한된 위임(Kerberos 전용 및 프로토콜 전환)

    사용자는 모든 도메인 또는 포리스트에 있을 수 있지만 프런트 엔드 및 백 엔드 서비스는 동일한 도메인에서 실행되어야 합니다.

  • RBCD(리소스 기반 제한 위임)

    사용자는 모든 도메인에서 온 것일 수 있으며 프런트 엔드 및 백 엔드 리소스는 모든 도메인 또는 포리스트에서 사용할 수 있습니다.

가장 일반적인 Kerberos 위임 문제 해결

  • 서비스 주체 이름이 누락되거나 중복됨
  • 이름 확인 오류 또는 잘못된 응답(서버에 대해 잘못된 IP 주소가 지정됨)
  • 대규모 Kerberos 티켓(MaxTokenSize) 및 환경이 제대로 설정되지 않음
  • 방화벽 또는 라우터에 의해 차단되는 포트
  • 서비스 계정에 적절한 권한이 부여되지 않음(사용자 권한 할당)
  • 프런트 엔드 또는 백 엔드 서비스가 동일한 도메인 및 제한된 위임 설정에 있지 않음

자세한 내용은 다음을 참조하세요.

SSO(Single Sign-On)가 끊어지고 인증을 한 번 요청

다음 시나리오를 고려하세요.

  • Microsoft Edge 및 IIS(인터넷 정보 서비스) 서버와 같은 클라이언트 및 서버 애플리케이션입니다. IIS 서버는 Windows 인증(협상)으로 구성됩니다.
  • SMB 클라이언트 및 SMB 서버와 같은 클라이언트 및 서버 애플리케이션입니다. 기본적으로 SMB 서버는 SSPI(Negotiate Security Support Provider Interface)로 구성됩니다.

사용자가 Microsoft Edge를 열고 내부 웹 사이트를 http://webserver.contoso.com찾습니다. 웹 사이트는 Negotiate로 구성되며 이 웹 사이트에서 인증을 요청합니다. 사용자가 사용자 이름과 암호를 수동으로 입력하면 사용자가 인증을 받고 웹 사이트가 예상대로 작동합니다.

참고 항목

이 시나리오는 클라이언트 및 서버의 예입니다. 문제 해결 기술은 통합 Windows 인증 구성된 모든 클라이언트 및 서버에 대해 동일합니다.

통합 Windows 인증 사용자 수준 또는 컴퓨터 수준에서 손상됩니다.

문제 해결 방법

  • 애플리케이션 또는 컴퓨터 수준에서 사용하도록 설정할 수 있는 통합 인증 설정에 대한 클라이언트 구성을 검토합니다. 예를 들어 모든 HTTP 기반 애플리케이션은 통합 인증을 수행하려고 할 때 신뢰할 수 있는 영역에 있는 사이트를 찾습니다.

    모든 HTTP 기반 애플리케이션이 Internet Explorer 구성에 사용하는 inetcpl.cpl(인터넷 옵션)를 열고 웹 사이트가 로컬 인트라넷으로 구성되어 있는지 검토합니다.

  • 애플리케이션에는 통합 Windows 인증 수행하는 구성도 있습니다.

    Microsoft Edge 또는 Internet Explorer에는 Windows 통합 인증을 사용하도록 설정하는 설정이 있습니다.

  • 애플리케이션 구성을 검토하고 클라이언트 컴퓨터는 지정된 SPN(서비스 사용자 이름)에 대한 Kerberos 티켓을 가져올 수 있습니다. 이 예제에서 SPN은 .입니다 http/webserver.contoso.com.

    • SPN을 찾을 수 있는 경우의 성공 메시지:

      C:>klist get http/webserver.contoso.com
      Current LogonId is 0:0x9bd1f
      A ticket to http/webserver.contoso.com has been retrieved successfully.
      
    • SPN을 찾을 수 없는 경우 오류 메시지:

      C:>klist get http/webserver.contoso.com
      klist failed with 0xc000018b/-1073741429: The SAM database on the Windows Server does not have a computer account for this workstation trust relationship.
      

    해당 SPN을 식별하고 적절한 사용자, 서비스 또는 컴퓨터 계정에 추가합니다.

  • SPN을 검색할 수 있음을 확인한 경우 다음 명령을 사용하여 올바른 계정에 등록되었는지 확인할 수 있습니다.

    setspn -F -Q */webserver.contoso.com
    

인증 DC 검색 문제

통합 Windows 인증 구성된 애플리케이션 서버는 사용자/컴퓨터 및 서비스를 인증하기 위해 DC(도메인 컨트롤러)가 필요합니다.

인증 프로세스 중에 도메인 컨트롤러에 연결할 수 없게 되면 오류 1355가 발생합니다.

지정된 도메인이 없거나 연결할 수 없습니다.

오류 1355와 함께 통합 Windows 인증 구성된 리소스에 액세스할 수 없음

참고 항목

오류 메시지는 애플리케이션의 관점에서 다를 수 있지만 오류의 의미는 클라이언트 또는 서버가 도메인 컨트롤러를 검색할 수 없다는 것입니다.

이러한 오류 메시지의 예는 다음과 같습니다.

  • "Contoso" 도메인에 조인하려고 시도하는 동안 다음 오류가 발생했습니다.
    지정한 도메인이 존재하지 않거나 연결할 수 없습니다.

  • 도메인 contoso.com에 대한 도메인 컨트롤러를 찾을 수 없습니다.

  • 도메인 컨트롤러 1355에 연결할 수 없습니다.

문제의 주요 원인

  • 클라이언트의 DNS 구성이 잘못되었습니다.

    명령을 실행하고 ipconfig /all DNS 서버 목록을 검토할 수 있습니다.

  • 신뢰할 수 있는 도메인 또는 포리스트의 도메인 컨트롤러에 대한 DNS 구성 오류

  • 클라이언트와 도메인 컨트롤러 간에 차단된 네트워크 포트

    DC 검색 포트: UDP 389(UDP LDAP) 및 UDP 53(DNS)

문제 해결 단계

  1. nslookup 명령을 실행하여 DNS 잘못된 구성을 식별합니다.
  2. 클라이언트와 도메인 컨트롤러 간에 필요한 포트를 엽니다. 자세한 내용은 Active Directory 도메인 및 트러스트에 대한 방화벽을 구성하는 방법을 참조하세요.

로그 분석 테스트 시나리오

환경 및 구성

  • 클라이언트 컴퓨터

    Client1.contoso.com (Windows 11 컴퓨터) 도메인 Contoso.com에 가입 합니다.

  • 사용자 John

    사용자가 클라이언트 컴퓨터에 속 Contoso.com 하고 로그인합니다.

  • 클라이언트 컴퓨터의 인터넷 옵션

    모든 웹 사이트는 로컬 인트라넷 영역의 일부입니다.

    모든 웹 사이트가 로컬 인트라넷 영역의 일부라는 것을 보여주는 인터넷 속성의 스크린샷

  • 서버

    IISServer.contoso.com (Windows Server 2019)는 도메인 Contoso.com에 가입합니다.

  • 인증 구성

    Windows 인증사용되도록 설정되어 있습니다.

    Windows 인증이 사용됨을 보여 주는 인터넷 정보 서비스 Manager 창의 스크린샷

  • 인증 공급자: 협상

    사용 가능한 공급자는 다음과 같이 설정됩니다.

    사용 가능한 공급자에 Negotiate가 포함되어 있는 것을 보여 주는 공급자 창의 스크린샷

인증 흐름

인증 흐름의 스크린샷.

  1. 사용자가 John 로그인하여 Client1.contoso.comMicrosoft Edge 브라우저를 열고 에 연결합니다 IISServer.contoso.com.
  2. 클라이언트 컴퓨터는 아래 단계를 수행합니다(위 다이어그램의 1단계).
    1. DNS 확인자는 이 정보가 이미 캐시 IISServer.contoso.com 되었는지 확인하기 위해 캐시합니다.
    2. DNS 확인자는 HOSTS 파일에서 C:\Windows\System32\drivers\etc\Hosts에 있는 매핑 IISServer.contoso.com 을 확인합니다.
    3. 환경의 도메인 컨트롤러이기도 한 기본 DNS 서버(IP 구성 설정에 구성됨)로 DNS 쿼리를 보냅니다.
  3. 도메인 컨트롤러에서 실행되는 DNS 서비스는 구성된 영역을 살펴보고, 호스트 A 레코드를 확인하고, IP 주소(위 다이어그램의 IISServer.contoso.com 2단계)로 다시 응답합니다.
  4. 클라이언트 컴퓨터는 TCP 포트 80에서 TCP 3방향 핸드셰이크를 수행합니다 IISServer.contoso.com.
  5. 클라이언트 컴퓨터는 익명 HTTP 요청을 IISServer.contoso.com보냅니다.
  6. 포트 80에서 Client1.contoso.com수신 대기하는 IIS 서버는 요청을 수신하고, IIS 서버 인증 구성을 살펴보고, 인증 구성으로 Negotiate를 사용하여 클라이언트 컴퓨터에 HTTP 401 챌린지 응답을 다시 보냅니다(위 다이어그램의 3단계).
  7. 실행 중인 Client1.contoso.com Microsoft Edge 프로세스는 IIS 서버가 Negotiate로 구성되어 있음을 알 수 있으며 웹 사이트가 로컬 인트라넷 영역의 일부인지 확인합니다. 웹 사이트가 로컬 인트라넷 영역에 있는 경우 Microsoft Edge 프로세스는 LSASS.exe 호출하여 SPN HTTP\IISServer.contoso.com (위 다이어그램의 5단계)을 사용하여 Kerberos 티켓을 가져옵니다.
  8. 도메인 컨트롤러(KDC 서비스)는 요청을 수신하고, 해당 데이터베이스에서 Client1.contoso.comSPN을 검색하고, 이 SPN HTTP\IISServer.contoso.com 을 사용하여 찾기 IISServer.contoso.com 를 구성합니다.
  9. 도메인 컨트롤러는 IIS 서버 티켓을 사용하여 TGS 응답으로 응답합니다(위 다이어그램의 6단계).
  10. 클라이언트 컴퓨터의 Microsoft Edge 프로세스는 도메인 컨트롤러에서 발급한 Kerberos TGS 티켓을 사용하여 KERberos AP(애플리케이션 프로토콜) 요청을 IIS 웹 서버로 보냅니다.
  11. IIS 프로세스는 웹 서버의 LSASS.exe 호출하여 티켓을 해독하고 권한 부여를 위해 SessionID 및 Users 그룹 멤버 자격으로 토큰을 만듭니다.
  12. IIS 프로세스는 LSASS.exe 토큰으로 핸들을 가져와서 권한 부여를 결정하고 사용자가 AP 응답에 연결할 수 있도록 합니다.

워크플로의 네트워크 모니터 분석

참고 항목

아래 작업을 수행하려면 로컬 관리자 그룹의 사용자여야 합니다.

  1. 클라이언트 컴퓨터(Client1.contoso.com)에 Microsoft 네트워크 모니터를 설치합니다.

  2. 관리자 권한 명령 프롬프트 창에서 다음 명령을 실행합니다(cmd.exe).

    ipconfig /flushdns
    
  3. 네트워크 모니터를 시작합니다.

  4. Microsoft Edge 브라우저를 열고 .를 입력합니다 http://iisserver.contoso.com.

  5. 네트워크 추적 분석:

    1. 호스트 A 레코드에 대한 도메인 컨트롤러에 대한 DNS 쿼리: IISServer.contoso.com.

      3005    00:59:30.0738430    Client1.contoso.com    DCA.contoso.com    DNS    DNS:QueryId = 0x666A, QUERY (Standard query), Query  for iisserver.contoso.com of type Host Addr on class Internet
      
    2. 도메인 컨트롤러의 DNS 서비스에서 DNS 응답입니다.

      3006    00:59:30.0743438    DCA.contoso.com    Client1.contoso.com    DNS    DNS:QueryId = 0x666A, QUERY (Standard query), Response - Success, 192.168.2.104
      
    3. Microsoft Edge 프로세스는 IIS 웹 서버 IISServer.contoso.com (익명 연결)에 Client1.contoso.com 연결합니다.

      3027    00:59:30.1609409    Client1.contoso.com    iisserver.contoso.com    HTTP    HTTP:Request, GET /
      Host:  iisserver.contoso.com
      
    4. IIS 서버는 HTTP 응답 401: 협상 및 NTLM(IIS 서버에서 수행되는 구성)으로 다시 응답합니다.

      3028    00:59:30.1633647    iisserver.contoso.com    Client1.contoso.com    HTTP    HTTP:Response, HTTP/1.1, Status: Unauthorized, URL: /favicon.ico Using Multiple Authetication Methods, see frame details
      
      WWWAuthenticate: Negotiate
      WWWAuthenticate: NTLM
      
    5. Kerberos 요청은 Client1.contoso.com SPNHTTP/iisserver.contoso.com을 사용하여 도메인 컨트롤러 DCA.contoso.com 로 이동합니다.

      3034    00:59:30.1834048    Client1.contoso.com    DCA.contoso.com    KerberosV5    KerberosV5:TGS Request Realm: CONTOSO.COM Sname: HTTP/iisserver.contoso.com
      
    6. 도메인 컨트롤러 DCA.contoso.com 는 Kerberos 티켓이 있는 TGS 응답이 있는 Kerberos 요청으로 다시 응답합니다.

      3036    00:59:30.1848687    DCA.contoso.com    Client1.contoso.com    KerberosV5    KerberosV5:TGS Response Cname: John 
      Ticket: Realm: CONTOSO.COM, Sname: HTTP/iisserver.contoso.com
      Sname: HTTP/iisserver.contoso.com
      
    7. 이제 Microsoft Edge 프로세스가 Client1.contoso.com Kerberos AP 요청을 사용하여 IIS 서버로 이동합니다.

      3040    00:59:30.1853262    Client1.contoso.com    iisserver.contoso.com    HTTP    HTTP:Request, GET /favicon.ico , Using GSS-API Authorization
      Authorization: Negotiate
      Authorization:  Negotiate YIIHGwYGKwYBBQUCoIIHDzCCBwugMDAuBgkqhkiC9xIBAgIGCSqGSIb3EgECAgYKKwYBBAGCNwICHgYKKwYBBAGCNwICCqKCBtUEggbRYIIGzQYJKoZIhvcSAQICAQBugga8MIIGuKADAgEFoQMCAQ6iBwMFACAAAACjggTvYYIE6zCCBOegAwIBBaENGwtDT05UT1NPLkNPTaIoMCagAwIBAqEfMB0bBEhUVFAbF
      SpnegoToken: 0x1
      NegTokenInit: 
      ApReq: KRB_AP_REQ (14)
      Ticket: Realm: CONTOSO.COM, Sname: HTTP/iisserver.contoso.com
      
    8. IIS 서버는 인증이 완료되었다는 응답으로 다시 응답합니다.

      3044    00:59:30.1875763    iisserver.contoso.com    Client1.contoso.com    HTTP    HTTP:Response, HTTP/1.1, Status: Not found, URL: / , Using GSS-API Authentication
      WWWAuthenticate: Negotiate oYG2MIGzoAMKAQChCwYJKoZIgvcSAQICooGeBIGbYIGYBgkqhkiG9xIBAgICAG+BiDCBhaADAgEFoQMCAQ+ieTB3oAMCARKicARuIF62dHj2/qKDRV5XjGKmyFl2/z6b9OHTCTKigAatXS1vZTVC1dMvtNniSN8GpXJspqNvEfbETSinF0ee7KLaprxNgTYwTrMVMnd95SoqBkm/FuY7WbTAuPvyRmUuBY3EKZEy
      NegotiateAuthorization: 
      GssAPI: 0x1
      NegTokenResp: 
      ApRep: KRB_AP_REP (15)
      
  6. klist tickets 명령을 실행하여 명령 출력의 Kerberos 티켓을 검토합니다Client1.contoso.com.

    Client: John @ CONTOSO.COM
    Server: HTTP/iisserver.contoso.com @ CONTOSO.COM
    KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
    Ticket Flags 0x40a10000 -> forwardable renewable pre_authent name_canonicalize
    Start Time: 11/28/2022 0:59:30 (local)
    End Time:   11/28/2022 10:58:56 (local)
    Renew Time: 12/5/2022 0:58:56 (local)
    Session Key Type: AES-256-CTS-HMAC-SHA1-96
    Cache Flags: 0
    Kdc Called: DCA.contoso.com
    
  7. 감사를 표시하는 IIS 서버에서 이벤트 ID 4624를 검토합니다 Success .

  • 기본적으로 Windows의 Success 모든 서버 운영 체제에서 또는 Failure 감사를 사용하도록 설정됩니다. 다음 명령을 사용하여 감사를 사용할 수 있는지 여부를 확인할 수 있습니다.

  • 감사를 사용하도록 설정하지 않은 경우 감사를 사용하도록 설정합니다. 아래 목록에서 로그온 범주를 검토합니다. 관찰할 수 있듯이 로그온 하위 범주는 Success and Failure.

    C:\>auditpol /get /Subcategory:"logon"
    System audit policy
    Category/Subcategory                      Setting
    Logon/Logoff
      Logon                                   Success and Failure
    

    로그온 Success and Failure을 관찰하지 않는 경우 명령을 실행하여 사용하도록 설정합니다.

    C:\>auditpol /set /subcategory:"Logon" /Success:enable /Failure:enable
    The command was successfully executed.
    

IISServer.contoso.com 성공 보안 이벤트 ID 4624 검토

다음 필드를 관찰합니다.

  • Logon type: 3(네트워크 로그온)
  • Security ID in New Logon field: Contoso\John
  • Source Network Address: 클라이언트 컴퓨터의 IP 주소
  • Logon ProcessAuthentication Package: Kerberos
Log Name:      Security
Source:        Microsoft-Windows-Security-Auditing
Date:          11/28/2022 12:59:30 AM
Event ID:      4624
Task Category: Logon
Level:         Information
Keywords:      Audit Success
User:          N/A
Computer:      IISServer.contoso.com
Description:
An account was successfully logged on.

Subject:
    Security ID:        NULL SID
    Account Name:        -
    Account Domain:        -
    Logon ID:        0x0

Logon Information:
    Logon Type:        3
    Restricted Admin Mode:    -
    Virtual Account:        No
    Elevated Token:        No

Impersonation Level:        Impersonation

New Logon:
    Security ID:        CONTOSO\John
    Account Name:        John
    Account Domain:        CONTOSO.COM
    Logon ID:        0x1B64449
    Linked Logon ID:        0x0
    Network Account Name:    -
    Network Account Domain:    -
    Logon GUID:        {<GUID>}

Process Information:
    Process ID:        0x0
    Process Name:        -

Network Information:
    Workstation Name:    -
    Source Network Address:    192.168.2.101
    Source Port:        52655

Detailed Authentication Information:
    Logon Process:        Kerberos
    Authentication Package:    Kerberos

인증 워크플로 문제 해결

다음 방법 중 하나를 사용하여 문제를 해결합니다.

  • 에서 Client1.contoso.comIIS 웹 서버(IISServer.contoso.com)의 이름을 확인할 수 있는지 확인합니다.

  • DNS 서버가 다음 cmdlet을 사용하여 올바른 IIS 서버 IP 주소에 다시 응답하는지 확인합니다.

    PS C:\> Resolve-DnsName -Name IISServer.contoso.com
    
    Name                                           Type   TTL   Section    IPAddress
    ----                                           ----   ---   -------    ---------
    IISServer.contoso.com                          A      1200  Answer     192.168.2.104
    
  • 다음 cmdlet을 사용하여 클라이언트 컴퓨터와 IIS 웹 서버(IISServer.contoso.com) 간에 네트워크 포트가 열려 있는지 확인합니다.

    PS C:\> Test-NetConnection -Port 80 IISServer.contoso.com                                                               
    
    ComputerName     : IISServer.contoso.com
    RemoteAddress    : 192.168.2.104
    RemotePort       : 80
    InterfaceAlias   : Ethernet 2
    SourceAddress    : 192.168.2.101
    TcpTestSucceeded : True
    
  • 도메인 컨트롤러에서 Kerberos 티켓을 가져오는지 확인합니다.

    1. 웹 사이트에 액세스하려는 사용자의 컨텍스트에서 일반 명령 프롬프트(관리자 명령 프롬프트 아님)를 엽니다.

    2. klist purge 명령을 실행합니다.

    3. klist get http/iisserver.contoso.com 다음과 같이 명령을 실행합니다.

      PS C:\> klist get http/iisserver.contoso.com
      
      Current LogonId is 0:0xa8a98b
      A ticket to http/iisserver.contoso.com has been retrieved successfully.
      
      Cached Tickets: (2)
      
      #0>     Client: John @ CONTOSO.COM
              Server: krbtgt/CONTOSO.COM @ CONTOSO.COM
              KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
              Ticket Flags 0x40e10000 -> forwardable renewable initial pre_authent name_canonicalize
              Start Time: 11/28/2022 1:28:11 (local)
              End Time:   11/28/2022 11:28:11 (local)
              Renew Time: 12/5/2022 1:28:11 (local)
              Session Key Type: AES-256-CTS-HMAC-SHA1-96
              Cache Flags: 0x1 -> PRIMARY
              Kdc Called: DCA.contoso.com
      
      #1>     Client: John @ CONTOSO.COM
              Server: http/iisserver.contoso.com @ CONTOSO.COM
              KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
              Ticket Flags 0x40a10000 -> forwardable renewable pre_authent name_canonicalize
              Start Time: 11/28/2022 1:28:11 (local)
              End Time:   11/28/2022 11:28:11 (local)
              Renew Time: 12/5/2022 1:28:11 (local)
              Session Key Type: AES-256-CTS-HMAC-SHA1-96
              Cache Flags: 0
              Kdc Called: DCA.contoso.com
      

      열에서 SPN http/IISServer.contoso.com Cached Ticket (2) 에 대한 Kerberos 티켓을 받게 됩니다.

  • 기본 자격 증명을 사용하여 IIS 웹 서비스가 IIS 서버에서 실행되고 있는지 확인합니다.

    웹 사이트에 액세스하려는 사용자의 컨텍스트에서 일반 PowerShell 프롬프트(관리자 PowerShell 프롬프트 아님)를 엽니다.

    PS C:\> invoke-webrequest -Uri http://IIsserver.contoso.com -UseDefaultCredentials
    PS C:\> invoke-webrequest -Uri http://IIsserver.contoso.com -UseDefaultCredentials
    
    
    StatusCode        : 200
    StatusDescription : OK
    Content           : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
                        <html xmlns="http://www.w3.org/1999/xhtml">
                        <head>
                        <meta http-equiv="Content-Type" cont...
    RawContent        : HTTP/1.1 200 OK
                        Persistent-Auth: true
                        Accept-Ranges: bytes
                        Content-Length: 703
                        Content-Type: text/html
                        Date: Mon, 28 Nov 2022 09:31:40 GMT
                        ETag: "3275ea8a1d91:0"
                        Last-Modified: Fri, 25 Nov 2022...
    
  • IIS 서버에서 보안 이벤트 로그를 검토합니다.

    • 성공 이벤트 로그 4624
    • 오류 이벤트 로그 4625
  • 격리 프로세스: 아래 문제 해결 단계를 사용하여 IIS 서버의 다른 서비스가 Kerberos 인증을 처리할 수 있는지 확인할 수 있습니다.

    필수 조건:

    • IIS 서버는 서버 버전의 Windows를 실행해야 합니다.

    • IIS 서버에는 SMB(포트 445)와 같은 서비스에 대해 열린 포트가 있어야 합니다.

    • 새 공유를 만들거나 컴퓨터에 이미 공유된 폴더(예: Software$) 중 하나에서 읽을 수 있는 권한을 사용자에게 John 제공합니다.

      1. Client1.contoso.com에 로그인합니다.

      2. Windows 탐색기를 엽니다.

      3. \IISServer.contoso.com \Software$를 입력합니다.

      4. 보안 이벤트를 IISServer.contoso.com 열고 이벤트 ID 4624가 관찰되는지 확인합니다.

      5. 사용자John로 일반 명령 프롬프트를 엽니다Client1.contoso.com. klist tickets 명령을 실행하고 티켓을 CIFS/IISServer.contoso.com검토합니다.

        #1>     Client: John @ CONTOSO.COM
                Server: cifs/iisserver.contoso.com @ CONTOSO.COM
                KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
                Ticket Flags 0x40a10000 -> forwardable renewable pre_authent name_canonicalize
                Start Time: 11/28/2022 1:40:22 (local)
                End Time:   11/28/2022 11:28:11 (local)
                Renew Time: 12/5/2022 1:28:11 (local)
                Session Key Type: AES-256-CTS-HMAC-SHA1-96
                Cache Flags: 0
                Kdc Called: DCA.contoso.com
        
      6. 에서 Client1.contoso.com네트워크 추적을 수집합니다. 네트워크 추적을 검토하여 단계의 범위를 좁히고 문제를 해결할 수 있도록 실패하는 단계를 관찰합니다.