익스트라넷 또는 인터넷 배포 계획

SQL Server Reporting Services는 명시적으로 익스트라넷 또는 인터넷 보고서 배포 시나리오용으로 설계되지는 않았지만 인터넷 연결 웹 서버에 Reporting Services를 배치하여 일반 정보를 전체 사용자에게 배포하거나 비공개 회사 데이터를 권한이 부여된 인증된 사용자에게 배포할 수 있습니다.

[!참고]

인터넷 연결 웹 서버에 Reporting Services를 배포하려면 철저한 평가를 수행해야 합니다. 네트워크 및 보안 소프트웨어, 네트워크 토폴로지 및 도메인 구성에 따라 보고서 서버 배포에 대한 정확한 작업 단계를 예측하기 어렵게 만드는 다양한 변수가 발생할 수 있습니다. 인터넷 액세스에 대해 보고서 서버를 평가할 때는 테스트 시나리오에 사용하려는 모든 기능이 포함되어 있는지 확인하고 항상 보안 연결을 사용하여 테스트하도록 합니다.

익스트라넷 또는 인터넷 아키텍처 다이어그램

다음 그림에서는 익스트라넷 또는 인터넷 배포를 위한 최선의 배포 구성 방법 예를 보여 줍니다.

인터넷 또는 엑스트라넷 보고 서버 배포

이 다이어그램에서 주의해야 할 사항은 다음과 같습니다.

  • 3개의 방화벽은 전체 배포에서 철저한 방어 기능을 제공합니다. 이 항목에서는 방화벽 구성에 대한 권장 사항에 대해 설명합니다.

  • 진입점은 ReportViewer 컨트롤을 포함하는 사용자 지정 인터넷 응용 프로그램입니다. 이 컨트롤은 보고서 서버의 두 번째 방화벽 뒤에서 실행되는 보고서를 호스팅합니다.

  • 보고서는 보고 목적으로 제작된 읽기 전용 데이터 원본의 데이터를 사용합니다. 이 데이터 원본은 다른 원본에서 복사된 데이터를 포함하지만 보고서에서 사용하지 않는 중요한 데이터 값은 제외됩니다.

  • 회사 데이터 서버에는 엄격한 사용 권한 및 제한적인 방화벽 설정을 통해 보호되는 중요한 데이터가 포함되어 있습니다. 읽기/쓰기 액세스 권한이 필요한 모든 데이터베이스 서버가 세 번째 방화벽에서 제공하는 보호 수준을 사용할 수 있도록 보고서 서버 데이터베이스를 이러한 보안 영역에 배치하는 것도 고려해야 합니다.

일반적인 지침

다음 목록에서는 이 항목에서 설명하는 토폴로지로 Reporting Services를 배포하는 데 대한 포괄적인 지침을 제공합니다. 이 목록을 배포 계획의 시작점으로 사용할 수 있습니다. 네트워크 토폴로지의 특정 구성에 따라 이 목록에 설명되지 않은 추가 단계를 수행해야 할 수도 있습니다.

요구 사항, 설정, 단계 및 이러한 단계를 수행하기 위한 최적의 순서 등을 모두 이해하기 위해서는 구성을 테스트 환경에 먼저 배포해 보는 것이 중요합니다.

  1. 방화벽을 설치하고 서버, 계정 및 권한을 확인합니다.

  2. SSL 서버 연결을 위한 서버 인증서를 만들거나 가져옵니다. 서버 구성 요소를 호스팅하는 모든 컴퓨터에 인증서를 설치합니다. 와일드카드 설정으로 인증서를 설치한 경우 여러 URL에 동일한 인증서를 사용할 수 있습니다.

  3. 회사 데이터를 개별 보고 데이터 원본으로 복사하기 위한 방법을 디자인하고 구현합니다. 복제와 같은 기술, SQL Server Integration Services 또는 타사 제품을 사용할 수 있습니다.

  4. 외부 액세스에 적합한 설정으로 구성할 수 있도록 Reporting Services를 파일만 설치 모드로 설치합니다. SQL Server 설치 마법사에서는 구성 없이 설치 옵션에 해당합니다.

  5. 설치가 완료된 후 Reporting Services 구성 도구를 실행하여 다음과 같이 보고서 서버를 구성합니다.

    1. 서비스가 최소 권한 계정으로 실행되는지 확인합니다. 로컬 시스템을 사용하지 마십시오. 로컬 시스템을 선택한 경우에는 NetworkService 또는 도메인 사용자 계정을 사용하도록 계정을 변경하십시오.

    2. 보고서 서버 URL 및 보고서 관리자 URL(선택 사항)을 정의합니다.

      외부 사용자가 사용하는 FQDN(정규화된 도메인 이름)을 통한 액세스를 지원하는 여러 URL과 네트워크 이름을 사용하는 다른 URL을 만들어야 합니다. 두 가지 URL을 사용하면 인터넷 연결이 해제되거나 오프라인 상태가 되더라도 보고서 서버에 연결할 수 있습니다.

      정의한 FQDN URL에 대한 SSL 인증서를 선택해야 합니다.

    3. 보고서 서버 데이터베이스를 만듭니다. SQL Server 인스턴스가 다른 도메인에 있고 Kerberos 5.0이 설정되지 않은 경우 보고서 서버 데이터베이스 연결에 대해 SQL Server 인증을 사용합니다. SSL 또는 IPSec을 사용하여 보고서 서버 컴퓨터와 SQL Server 데이터베이스 엔진 인스턴스 간의 연결을 보호합니다.

  6. 사용자 지정 인증 확장 프로그램을 만들고 배포합니다. ISAPI 필터로 구현되는 Single Sign-On 기술을 사용할 경우 ISA Server를 사용하여 ISAPI 필터를 지원해야 합니다. Reporting Services의 HTTP 수신기는 ISAPI 필터를 지원하지 않습니다.

  7. 사용자 지정 인증 확장 프로그램의 보안 주체를 사용하는 역할 할당을 구성하고 이를 보고서 서버 작업에 대한 권한을 부여하는 역할에 매핑합니다.

  8. ReportViewer 웹 서버 컨트롤을 사용하는 인터넷 프런트 엔드 응용 프로그램을 만들고 배포합니다.

  9. 보고서 서버에 보고서와 기타 콘텐츠 유형을 게시합니다.

  10. 방화벽 설정을 구성합니다. 방화벽 설정에서 다운스트림 컴퓨터 및 응용 프로그램에 대해 최소한의 액세스를 허용하는지 확인합니다.

방화벽 구성

보고서 서버 응용 프로그램의 기본 URL은 포트 80이 설정되어 있고 보고서 서버에서 이를 사용할 수 있는 것으로 가정합니다. Windows 방화벽을 사용하려면 포트 80 또는 보고서 서버 HTTP 요청에서 사용할 수 있는 다른 포트를 열어야 합니다. 다른 포트를 사용할 경우에는 이를 보고서 서버 URL에 지정해야 합니다. 자세한 내용은 방법: 보고서 서버 액세스를 위한 방화벽 구성을 참조하십시오. 기본 Windows 방화벽 설정 방법과 데이터베이스 엔진, Analysis Services, Reporting Services 및 Integration Services에 영향을 주는 TCP 포트에 대한 설명은 SQL Server 액세스를 허용하도록 Windows 방화벽 구성을 참조하십시오.

인터넷 응용 프로그램의 ReportViewer 웹 서버 컨트롤

인터넷 응용 프로그램에 보고서를 배포하려면 사용자가 만들고 배포하는 사용자 지정 인터넷 연결 가능 응용 프로그램에 ReportViewer 웹 서버 컨트롤을 포함하십시오. ReportViewer 웹 서버 컨트롤은 Visual Studio 2005 이상에 포함되어 있으며 응용 프로그램을 사용하여 무료로 배포할 수 있습니다. 보고서 서버에서 실행되는 보고서를 표시하도록 컨트롤을 구성할 수 있습니다. 응용 프로그램과 보고서 서버 간 연결은 웹 서비스 프로그래밍 인터페이스를 통해 컨트롤에 의해 처리됩니다. 모든 인증 및 권한 부여는 사용자가 신뢰할 수 있는 단일 연결을 통해 보고서 서버에 연결되는 응용 프로그램에 의해 처리됩니다.

자세한 내용은 Visual Studio 2010의 Reporting Services 및 ReportViewer 컨트롤을 참조하십시오.

보고서 관리자를 인터넷 또는 익스트라넷 웹 프런트 엔드로 사용

보고서 관리자는 인터넷 응용 프로그램으로 설계되지는 않았지만 사용자 지정 인터넷 응용 프로그램을 사용할 수 없는 경우 보고서 디자이너를 사용하여 인터넷 연결을 통해 보고서를 볼 수 있습니다. 배포를 위해서는 다음과 같은 방법을 사용하는 것이 가장 좋습니다.

  • 보고서 관리자를 응용 프로그램 서버에 별도의 인스턴스로 설치하는 것을 고려하십시오. 보고서 관리자는 보고서 서버 서비스 내에서 실행됩니다. 따라서 보고서 관리자를 설치하려면 Reporting Services를 설치한 다음 웹 서비스와 이러한 서비스의 예약 및 배달 기능을 해제해야 합니다. 최상의 결과를 얻으려면 파일만 설치 모드를 사용하여 인터넷 연결 웹 서버에 Reporting Services를 설치합니다. SQL Server 설치 마법사에서는 구성 없이 설치 옵션에 해당합니다.

  • 폼 인증 또는 Single Sign-On 기술을 지원하기 위해 사용자 지정 보안 확장 프로그램을 만들고 배포합니다.

  • 보고서 관리자를 최소 권한으로 구성합니다. 보고서를 보는 데는 브라우저 역할 및 시스템 사용자 역할이면 충분합니다.

  • 별도의 컴퓨터에서 실행되는 다른 보고서 서버에 보고서 관리자를 지정하려면 보고서 관리자 URL을 구성한 다음 RSReportServer.config 파일에서 <ReportServerVirtualDirectory> 및 <ReportServerUrl> 설정을 수정하여 보고서 관리자를 보고서 서버 인스턴스에 지정합니다.

  • 연결하려는 보고서 서버에서 사용하지 않는 기능을 해제합니다. 여기에는 내 보고서, 구독 및 배달, 보고서 작성기 및 클라이언트측 인쇄가 포함될 수 있습니다.

Web.config 파일에서 프록시 설정 구성

보고서 관리자를 인터넷 배포용 프런트 엔드 응용 프로그램으로 사용하려는 경우 보고서 서버가 같은 컴퓨터에 설치되어 있으면 같은 컴퓨터에 설치된 로컬 보고서 서버에 요청을 보낼 때 보고서 관리자가 프록시 서버를 사용하지 않도록 하는 Web.config 설정을 지정해야 합니다.

Web.config 설정은 System.NET defaultProxy 네트워크 설정입니다. 기본적으로 보고서 관리자에 대한 Web.config 파일에서는 defaultProxy가 해제되어 있습니다. 보고서 관리자와 보고서 서버가 동일한 컴퓨터에 함께 배포될 때 이것이 권장 구성입니다.

이전 버전의 Reporting Services를 업그레이드한 경우에는 보고서 관리자 Web.config 파일에 defaultProxy 구성 설정이 포함되어 있지 않습니다. 보고서 관리자 및 보고서 서버가 동일한 컴퓨터에서 실행되는 설치에서 프록시 서버를 사용하지 않으려면 defaultProxy 설정을 추가하고 지정합니다. 다음 구성 설정을 보고서 관리자 Web.config 파일로 복사합니다.

<configuration>
...
<system.net>
  <defaultProxy enabled="false" />
</system.net>
</configuration>

이러한 설정에 대한 자세한 내용은 Microsoft .NET Framework Developer's Guide에서 "Configuring Internet Applications" 및 "defaultProxy Element (Network Settings)"를 참조하십시오.

익스트라넷 및 인터넷 배포를 위한 인증 고려 사항

미리 정의된 Microsoft Active Directory 계정에서 연결할 수 있는 익스트라넷 시나리오에서 보고서 서버를 배포하려면 기본 Windows 인증 보안 확장 프로그램을 사용합니다. 서버의 SSL(Secure Sockets Layer) 연결 및 기본 인증 구성을 계획합니다. Reporting Services 구성 도구를 사용하여 기존 인증서를 보고서 서버 URL에 매핑할 수 있습니다. 구성 파일을 수정하여 인증 유형을 지정할 수도 있습니다.

사용자 ID 정보를 데이터베이스에 저장하는 폼 기반 인증 모델 또는 Single Sign-on 기술에서 연결할 수 있는 익스트라넷 시나리오에서 보고서 서버를 배포하려면 기본 Windows 인증 보안 확장 프로그램을 대체할 수 있는 사용자 지정 인증 확장 프로그램을 만들어야 합니다. 폼 기반 인증은 일반적으로 전체 사용자에게 보고서 서버를 공개하려는 경우에 사용되지만 인증된 사용자에게만 내용을 공개하려는 경우에도 사용됩니다. 기본적으로 SQL Server Reporting Services는 폼 기반 인증 모듈을 제공하지 않습니다. 폼 기반 인증 모듈을 만드는 방법은 SQL Server 온라인 설명서에서 보안 확장 프로그램 구현을 참조하십시오.

인터넷 배포 확인

보고서 서버에 연결할 수 있는지 확인하려면 http: (또는 https:)//<your-web-server-fully-qualified-domain-name>/reportserver를 입력하여 인터넷 연결을 통해 보고서 서버 폴더 네임스페이스를 볼 수 있어야 합니다. 여기서 /reportserver는 보고서 서버 가상 디렉터리의 기본 이름입니다.