방법: 보고서 서버의 SPN(서비스 사용자 이름) 등록

상호 인증에 Kerberos 프로토콜을 사용하는 네트워크에 Reporting Services를 배포하는 경우 도메인 사용자 계정으로 실행되도록 보고서 서버 서비스 SPN(서비스 사용자 이름)을 구성하려면 보고서 서버 서비스에 대한 SPN을 만들어야 합니다. 또한 도메인 사용자를 서비스 계정으로 구성한 경우 보고서 서버에서 NTLM 인증을 사용하도록 구성해야 합니다.

SPN 정보

SPN은 Kerberos 인증을 사용하는 네트워크에서 고유한 서비스 식별자로 서비스 클래스, 호스트 이름, 포트로 구성됩니다. Kerberos 인증을 사용하는 네트워크에서 서버에 대한 SPN은 기본 제공 컴퓨터 계정(예: NetworkService 또는 LocalSystem) 또는 사용자 계정에서 등록되어야 합니다. 기본 제공 계정에 대해서는 SPN이 자동으로 등록됩니다. 그러나 도메인 사용자 계정에서 서비스를 실행할 경우 사용할 계정에 대한 SPN을 수동으로 등록해야 합니다.

SPN은 SetSPN 명령줄 유틸리티를 사용하여 만들 수 있습니다. 자세한 내용은 Microsoft Windows Server TechCenter에서 Setspn 개요(Setspn Overview)를 참조하십시오.

도메인 컨트롤러에서 이 유틸리티를 실행하려면 도메인 관리자여야 합니다.

구문

SetSPN 유틸리티를 사용하여 보고서 서버의 SPN을 만드는 명령 구문은 다음과 같습니다.

Setspn -a http/<computername>.<domainname>:<port> <domain-user-account>

SetSPN은 별도로 다운로드해야 하는 Windows Server 2003 서비스 팩 1 지원 도구 팩과 함께 제공됩니다. -a 인수는 서비스 사용자 이름을 특정 계정에 등록하는 데 사용됩니다.

HTTP는 서비스 클래스입니다. 보고서 서버 웹 서비스는 HTTP.SYS에서 실행됩니다. HTTP용 SPN을 만들면 HTTP.SYS에서 실행되는 같은 컴퓨터에 있는 모든 웹 응용 프로그램(IIS에서 호스팅되는 응용 프로그램 포함)에 도메인 사용자 계정을 기반으로 하는 티켓이 부여됩니다. 이러한 서비스가 다른 계정에서 실행되면 인증 요청이 실패합니다. 이 문제를 방지하려면 같은 계정에서 실행되도록 모든 HTTP 응용 프로그램을 구성하거나 응용 프로그램마다 호스트 헤더를 만든 다음 호스트 헤더별로 SPN을 만드십시오. 호스트 헤더를 구성할 때는 Reporting Services 구성과 관계없이 DNS를 변경해야 합니다.

<computername>, <domainname> 및 <port>에 지정하는 값은 보고서 서버를 호스팅하는 컴퓨터의 고유 네트워크 주소를 식별합니다. 이는 로컬 호스트 이름이거나 FQDN(정규화된 도메인 이름)일 수 있습니다. 도메인이 하나뿐이고 포트 80을 사용하는 경우 명령줄에서 <domainname> 및 <port>를 생략할 수 있습니다. <domain-user-account>는 보고서 서버 서비스를 실행하는 데 사용되며 SPN을 등록해야 하는 사용자 계정입니다.

[!참고]

참고: Internet Explorer와 Kerberos 인증을 사용하는 경우 명령줄에 포트를 지정하지 않는 것이 좋습니다. 자세한 내용은 Internet Explorer 6 Kerberos 인증 프로토콜은 Windows XP에서 및 Windows Server 2003에서 비표준 포트를 사용하는 웹 사이트에 연결할 수 없습니다.를 참조하십시오.

도메인 사용자 계정에 대한 SPN 등록

도메인 사용자로 실행 중인 보고서 서버 서비스에 대한 SPN을 등록하려면

  1. Reporting Services를 설치하고 도메인 사용자 계정으로 실행되도록 보고서 서버 서비스를 구성합니다. 다음 단계를 완료해야 보고서 서버에 연결할 수 있습니다.

  2. 다운로드 센터에서 Windows Server 2003 서비스 팩 1 지원 도구를 다운로드하여 설치합니다.

  3. 도메인 관리자로 도메인 컨트롤러에 로그온합니다.

  4. 명령 프롬프트 창을 엽니다.

  5. 다음 명령을 복사하되 자리 표시자 값은 사용자의 네트워크에 유효한 실제 값으로 대체합니다.

    Setspn -a http/<computer-name>.<domain-name>:<port> <domain-user-account>
    
  6. 명령을 실행합니다.

  7. RsReportServer.config 파일을 열고 <AuthenticationTypes> 섹션을 찾습니다. 이 섹션에 <RSWindowsNegotiate/>를 첫 번째 항목으로 추가하여 NTLM을 활성화합니다.