Kerberos 구성 관련 알려진 문제(SharePoint Server 2010)

 

적용 대상: SharePoint Server 2010

마지막으로 수정된 항목: 2016-11-30

Kerberos 인증 및 비기본 포트

일부 Kerberos 클라이언트(.NET Framework, Internet Explorer 7/8 포함)가 비기본 포트(80 및 443 이외의 포트)에 구성된 Kerberos 사용 가능 웹 응용 프로그램에 인증할 때 서비스 사용자 이름을 올바르게 만들지 않는 알려진 문제가 있습니다. 이 문제는 근본적으로 클라이언트가 TGS 요청의 Sname에 표시되는 포트 번호를 사용하지 않고 SPN을 지정함으로써 TGS 요청의 SPN을 올바르게 만들지 않기 때문에 발생합니다.

예:

웹 응용 프로그램이 http://intranet.contoso.com:1234에서 실행되는 경우 클라이언트는 http/intranet.contoso.com:1234가 아닌 http/intranet.contoso.com과 같은 SPN을 사용하여 서비스에 대한 티켓을 요청합니다.

아래 문서에서 이 문제와 관련된 세부 정보를 확인할 수 있습니다.

이 문제를 해결하려면 다음과 같이 포트 번호를 포함하는 SPN과 포함하지 않는 SPN을 모두 등록합니다.

  • http/intranet

  • http/intranet.contoso.com

  • http/intranet:12345

  • http/intranet.contoso.com:12345

이 문제가 이후의 서비스 팩이나 핫픽스에서 해결되는 경우에도 해결 방법을 적용한 응용 프로그램이 계속 작동하도록, 비기본 포트를 등록하는 것이 좋습니다.

다음과 같은 상황에서는 이 해결 방법을 사용할 수 없습니다.

  • 비기본 포트에서 둘 이상의 웹 응용 프로그램을 실행 중인 경우

  • 웹 응용 프로그램이 서버의 호스트 이름 또는 동일한 호스트 헤더(서로 다른 포트)에 바인딩되는 경우

  • 웹 응용 프로그램 IIS 응용 프로그램 풀이 다른 서비스 계정을 사용하는 경우

위의 상황에 해당하는 경우 이 해결 방법의 권장 사항을 따르면 중복 SPN이 서로 다른 서비스 계정에 등록되어 Kerberos 인증이 손상됩니다.

여러 웹 사이트에서 여러 포트에서 실행되는 공통 호스트 이름을 공유하며, 웹 응용 프로그램에 대해 서로 다른 IIS 응용 프로그램 풀 ID를 사용하는 경우 모든 웹 사이트에서 Kerberos 인증을 사용할 수는 없습니다. 즉, 한 응용 프로그램은 Kerberos를 사용할 수 있지만 나머지 응용 프로그램에서는 다른 인증 프로토콜을 사용해야 합니다. 이 시나리오에서 모든 응용 프로그램에 Kerberos를 사용하려면 다음 중 하나를 실행해야 합니다.

  1. 공유 서비스 계정 하나로 모든 웹 응용 프로그램을 실행합니다.

  2. 각 사이트를 자체 호스트 헤더로 실행합니다.

Kerberos 인증 및 DNS CNAME

일부 Kerberos 클라이언트(Internet Explorer 7/8 포함)의 경우 A 레코드가 아닌 DNS CNAME을 사용하여 확인하도록 구성된 Kerberos 사용 가능 서비스에 인증할 때 알려진 문제가 발생합니다. 이 문제는 근본적으로 클라이언트가 별칭 이름(CNAME)이 아닌 호스트 이름(A 레코드)을 사용하여 SPN을 만듦으로써 TGN 요청에서 SPN을 올바르게 만들지 않기 때문에 발생합니다.

예:

A 레코드: wfe01.contoso.com

CNAME: intranet.contoso.com(별칭 wfe01.contoso.com)

이 경우 클라이언트가 http://intranet.contoso.com에 인증할 때 SPN을 올바르게 만들지 않아 http/intranet.contoso.com이 아닌 http/wfe01.contoso.com에 대해 Kerberos 티켓을 요청하게 됩니다.

아래 문서에서 이 문제와 관련된 세부 정보를 확인할 수 있습니다.

https://support.microsoft.com/kb/911149/ko-kr

https://support.microsoft.com/kb/938305/ko-kr

이 문제를 해결하려면 CNAME 별칭이 아닌 DNS A 레코드를 사용하여 Kerberos 사용 가능 서비스를 구성합니다. KB 문서에 설명되어 있는 핫픽스를 사용하면 Internet Explorer에 대해서는 이 문제가 해결되지만, Microsoft Office SharePoint Server에서 웹 서비스 통신에 사용하는 .NET Framework의 경우에는 문제가 해결되지 않습니다.

Kerberos 인증 및 커널 모드 인증

참고

SharePoint 2010 제품에서는 커널 모드 인증이 지원되지 않습니다. 이 정보는 참고용으로만 제공됩니다.

IIS 버전 7.0부터는 커널 모드 인증이라는 새로운 인증 기능이 제공됩니다. IIS 웹 사이트가 커널 모드 인증을 사용하도록 구성된 경우 HTTP.sys가 응용 프로그램 풀의 작업자 프로세스가 아닌 클라이언트의 요청을 인증합니다. HTTP.sys는 커널 모드에서 실행되므로 성능은 향상되지만 Kerberos를 구성하기가 약간 복잡해집니다. 이는 HTTP.sys가 작업자 프로세스의 ID가 아닌 컴퓨터의 ID로 실행되기 때문입니다. HTTP.sys는 Kerberos 티켓을 받으면 기본적으로 작업자 프로세스를 실행하는 ID의 키가 아닌 서버의 암호화 키(암호)를 사용하여 티켓 암호를 해독합니다.

단일 웹 서버가 커널 모드 인증을 사용하도록 구성된 경우, HOST SPN이 도메인에 추가되면 서버에서 자동으로 해당 SPN을 등록하기 때문에 추가 구성을 수행하거나 SPN을 추가하지 않아도 Kerberos가 작동합니다. 그러나 여러 웹 서버가 부하 분산되는 경우에는 기본 커널 모드 인증 구성이 작동하지 않거나 최소한 일시적으로 오류가 발생합니다. 클라이언트가 TGS 요청에서 받은 서비스 티켓이 요청을 인증하는 서버에서 작동함을 확인할 방법이 없기 때문입니다.

이 문제를 해결하려면 다음 작업을 실행할 수 있습니다.

Kerberos 인증 및 세션 기반 인증

IIS 7.0 이상에서 Kerberos 인증을 사용하는 경우 인증 트래픽이 증가할 수 있습니다. 이러한 현상은 IIS의 Windows 인증 설정, 특히 다음 설정과 관련이 있을 수 있습니다.

AuthPersistNonNTLM

선택적 부울 특성

IIS가 동일한 연결에 대해서도 NTLM이 아닌 모든 요청(예: Kerberos)을 자동으로 다시 인증하는지 여부를 지정합니다. True로 설정하는 경우 동일한 연결에 대해 여러 인증을 사용할 수 있습니다.

기본값은 False입니다.

참고

False로 설정하는 경우 동일한 연결에 대해 클라이언트를 한 번만 인증합니다. IIS는 설정된 상태로 유지되는 TCP 세션에 대해 서버에서 티켓이나 토큰을 캐시합니다.

authPersistSingleRequest

선택적 부울 특성

이 플래그를 True로 설정하면 인증이 특정 연결에서 한 요청에만 적용되도록 지정합니다. IIS는 각 요청이 종료되면 인증을 다시 설정하며 다음 세션 요청에서 다시 인증을 수행합니다.

기본값은 False입니다.

IIS 7.0에서 인증 지속성을 구성하는 방법에 대한 지침은 IIS 7.0에서 Windows 통합 인증과 Kerberos 인증 프로토콜을 함께 사용하면 성능이 저하될 수 있음액세스 제어 구현(영문일 수 있음)을 참조하십시오.

Kerberos 인증 및 SPN 중복/누락 문제

Kerberos 인증을 구성할 때는 실수로 중복 서비스 사용자 이름을 구성하는 경우가 많습니다. 특히 SetSPN -A 또는 ADSI 편집(adsiedit.msc) 도구를 사용하여 SPN을 만드는 경우에는 더욱 그러합니다. 일반적으로는 SetSPN -S를 사용하여 SPN을 만드는 것이 좋습니다. 지정한 SPN을 만들기 전에 -S 스위치가 중복 SPN이 있는지 확인하기 때문입니다.

환경에 중복 SPN이 있는 것으로 의심되는 경우 SetSPN -X 명령을 사용하여 환경의 모든 중복 SPN을 쿼리합니다(Windows 2008 이상에서만 가능함). 반환되는 SPN이 있는 경우 해당 SPN이 등록된 이유를 파악한 다음 필요 없는 중복 SPN은 삭제해야 합니다. 서로 다른 ID를 사용하여 실행 중인 두 서비스가 같은 SPN을 사용하는 경우(중복 SPN 문제), 둘 중 한 서비스가 다른 SPN을 사용하거나 일반 서비스 ID를 공유하도록 다시 구성해야 합니다.

SPN이 등록되지 않았거나 필요한 형식으로 등록되지 않은 것으로 의심되는 경우에는 SetSPN -Q <SPN 삽입>을 사용하여 특정 SPN이 있는지를 쿼리할 수 있습니다.

Kerberos 최대 토큰 크기

일부 환경에서는 사용자가 여러 Active Directory 그룹의 구성원일 수 있으며, 이로 인해 사용자의 Kerberos 티켓 크기가 커질 수 있습니다. 티켓이 너무 커지면 Kerberos 인증이 실패할 수 있습니다. 최대 토큰 크기를 조정하는 방법에 대한 자세한 내용은 사용자가 여러 그룹에 속하는 경우의 Kerberos 인증 문제를 해결하는 새로운 방법(https://support.microsoft.com/kb/327825/ko-kr)을 참조하십시오.

참고

최대 토큰 크기를 조정할 때는 레지스트리 설정에 대한 최대값을 초과하여 최대 토큰 크기를 구성하는 경우 Kerberos 인증 오류가 발생할 수 있음을 기억하십시오. 최대 토큰 크기는 10진수 65536(16진수 FFFF)을 초과하지 않는 것이 좋습니다.

Windows Server 2008 및 Windows Vista용 Kerberos 인증 핫픽스

AES 알고리즘을 사용하는 경우 Windows Server 2008 또는 Windows Vista를 실행하는 컴퓨터에서 Kerberos 인증이 실패하고 오류 코드 0X80090302 또는 0x8009030f가 표시됩니다.(https://support.microsoft.com/kb/969083/ko-kr).

환경에서 Windows Server 2008 또는 Windows Vista를 실행하는 모든 컴퓨터에 Kerberos 인증용 핫픽스를 설치해야 할 수 있습니다. 여기에는 SharePoint Server가 Kerberos 인증을 사용하여 인증하려는 모든 SharePoint Server 2010, SQL Server 또는 Windows Server 2008 실행 컴퓨터가 포함됩니다. 지원 사례에 설명되어 있는 증상이 나타나는 경우 지원 페이지의 지침에 따라 핫픽스를 적용하십시오.