SharePoint 통합 모드의 Reporting Services에 대한 보안 개요

SharePoint 통합 모드에서 실행되도록 보고서 서버를 구성하면 보고서 서버에서는 SharePoint 웹 응용 프로그램에 정의되어 있는 인증 공급자 및 사용 권한을 사용하여 보고서 서버 항목 및 작업에 대한 액세스를 제어합니다.

항목 및 작업에 대한 액세스 권한은 항목에 따라 사용자 또는 그룹 계정을 사용 권한 수준에 매핑하는 SharePoint 보안 정책을 통해 부여됩니다. 개념상 이는 네이티브 모드 보고서 서버 배포에서 역할 할당이 사용되는 방법과 동일합니다. 여기서는 역할 할당이 항목에 따라 사용자 또는 그룹 계정을 허용 가능한 태스크 집합에 매핑합니다. 대부분의 역할 기반 인증 모델과 마찬가지로 SharePoint 보안은 많은 정책을 유지 관리할 때 발생할 수 있는 복잡성과 오버헤드를 줄이기 위해 사용 권한 상속 기능을 제공합니다.

보고서 서버 콘텐츠 형식을 SharePoint 사이트에 배포하는 경우 다음을 숙지해야 합니다.

사용 권한을 설정하려면 먼저 통합할 각 서버를 구성해야 합니다. 자세한 내용은 SharePoint 2010 통합을 위한 Reporting Services 구성을 참조하십시오.

SharePoint 기술의 인증 공급자

SharePoint 웹 응용 프로그램에서는 Windows 인증이나 폼 인증을 사용할 수 있습니다. 보고서 서버는 두 인증 중 하나의 요청을 처리합니다. 인증은 다음과 같이 조합하여 구성할 수 있습니다.

  • Kerberos를 사용하는 Windows 인증

  • NTLM(NT LAN Manager)을 사용하는 Windows 인증

  • 폼 인증

[!참고]

Reporting Services와 SharePoint 제품 및 기술은 모두 폼 인증을 지원합니다. 구현 방법은 제품 그룹에 따라 다르며 서로 호환되지 않습니다. SharePoint 통합 모드에서 실행되는 보고서 서버에 대해서는 Reporting Services 사용자 지정 인증 확장 프로그램이 지원되지 않습니다.

다음 표에서는 각 인증 공급자의 이점과 단점을 요약하여 보여 줍니다.

이점

단점

Kerberos를 사용하는 Windows 인증

단일 서버 및 다중 서버 배포 시나리오에서 사용할 수 있습니다.

외부 데이터 원본에 대해 Windows 통합 자격 증명 사용을 지원합니다.

다중 서버 배포에서 NTLM 인증과 함께 사용할 수 없습니다.

복잡한 도메인 및 구성 서버 구성이 필요합니다.

NTLM 또는 폼 인증을 사용하는 Windows 인증

Kerberos 및 모든 비-Kerberos 인증 시나리오에서 사용할 수 있습니다.

외부 데이터 원본에 대해 Windows 통합 자격 증명 사용을 지원하지 않습니다.

SharePoint 클레임 인증

SharePoint 2010 제품은 클레임 기반 인증을 지원합니다. SharePoint 통합 모드에서 실행되는 SQL Server 2008 R2 Reporting Services는 트러스트된 계정 인증 및 SharePoint 사용자 토큰을 사용함으로써 SharePoint 클레임 사용 웹 응용 프로그램에서 작동합니다. Reporting Services가 클레임 인증을 지원하는 방법에 대한 자세한 내용은 클레임 인증 및 Reporting Services를 참조하십시오. 클레임 기반 인증에 대한 자세한 내용은 클레임 기반 ID 개요(Claims-Based Identity Overview)를 참조하십시오.

보고서 서버로 요청 보내기

보고서 서버 항목 또는 작업에 대한 모든 요청은 인증된 유효한 요청이어야 합니다. 사용하는 인증 공급자에 따라 해당 요청의 처리 방법이 결정됩니다.

Kerberos를 사용하는 Windows 통합 보안

SharePoint 웹 응용 프로그램에 Kerberos를 사용하는 Windows 인증을 구성한 경우에는 보고서 서버에 대한 SharePoint 웹 응용 프로그램의 연결에서 현재 Windows 사용자의 가장 또는 위임된 자격 증명을 사용할 수 있습니다. Kerberos 및 ID 위임이 설정된 Windows 통합 보안을 사용하면 단일 연결 이후 Windows 자격 증명이 만료되는 전형적인 "이중 홉" 문제를 없앨 수 있으며 보고서 및 모델에 대한 데이터 원본 연결을 구성할 때 사용 가능한 옵션 집합을 확장할 수도 있습니다. 다음 다이어그램에서는 보고서 서버에 SharePoint 통합이 구성되어 있고 SharePoint 웹 응용 프로그램이 Kerberos 및 ID 위임이 설정된 Windows 인증을 사용하는 경우의 연결을 보여 줍니다.

SharePoint 통합 모드에서의 연결

  • 연결 1
    사용자가 네트워크 로그온 시 생성된 사용자 토큰으로 SharePoint 사이트에 액세스합니다. 이 토큰에는 사용자 ID와 그룹 멤버 자격이 포함됩니다. SharePoint 웹 응용 프로그램에서 사용자를 인증합니다. 사용자가 보고서 서버 항목 또는 작업을 요청합니다.

  • 연결 2
    SharePoint 웹 응용 프로그램에서 보고서 서버로 토큰과 요청을 보냅니다. 연결 요청은 사용자의 위임된 Windows ID로 전송됩니다. 보고서 서버는 사용자가 보고서 서버에 액세스할 수 있도록 허용되는지 확인하기 위해 사용자를 인증합니다.

  • 연결 3
    인증이 성공적이면 보고서 서버는 Reporting Services 인스턴스의 사용자 계정을 통해 SharePoint 콘텐츠 데이터베이스에 연결하여 이 사용자가 해당 항목이나 작업에 액세스할 권한이 있는지 확인합니다. 권한이 있으면 보고서 서버는 요청을 처리합니다.

  • 연결 4
    사용자가 보고서를 보고 있는 경우 보고서 서버에서는 보고서 처리 중에 사용자의 Windows ID를 위임하여 외부 데이터 원본의 데이터를 검색할 수 있습니다. 따라서 보고서에서 데이터 원본 속성을 설정할 때 데이터 원본 연결에 대해 Windows 통합 보안 옵션을 선택할 수 있습니다. 자세한 내용은 SQL Server 온라인 설명서의 보고서 데이터 원본에 대한 자격 증명 및 연결 정보 지정방법: 공유 데이터 원본 만들기 및 관리(SharePoint 통합 모드의 Reporting Services)를 참조하십시오.

Windows 또는 폼 인증 및 트러스트된 계정

SharePoint 웹 응용 프로그램을 폼 인증이나 NTLM을 사용하는 Windows 인증용으로 구성한 경우 보고서 서버에 대한 연결이 보고서 서버에서 SharePoint 사용자를 가장할 수 있는 권한이 있는 미리 정의된 트러스트된 계정으로 네트워크를 통해 전송됩니다. 다음 다이어그램에서는 트러스트된 계정과 SharePoint 사용자 ID가 사용되는 경우의 연결을 보여 줍니다.

트러스트된 연결에 대한 연결 다이어그램

  • 연결 1
    사용자가 SharePoint 사이트에 로그온합니다. SharePoint 웹 응용 프로그램에서 사용자를 인증합니다. SharePoint 웹 응용 프로그램에서 사용자 ID를 SharePoint 사용자 ID(SPUser)로 변환합니다. SPUser의 컨텍스트에서 해당 사용자에 대한 새 사용자 토큰이 생성됩니다. 이 토큰에는 사용자 ID와 그룹 멤버 자격이 포함됩니다. 사용자가 보고서 서버 항목 또는 작업을 요청합니다.

  • 연결 2
    SharePoint 웹 응용 프로그램은 SharePoint 웹 응용 프로그램의 프로세스 ID인 트러스트된 계정을 사용하여 보고서 서버에 연결합니다. 그런 다음 SharePoint 웹 응용 프로그램은 항목이나 작업에 대한 요청에서 SharePoint 사용자 ID를 가장합니다.

    보고서 서버는 보고서 서버가 시작될 때 SharePoint 구성 데이터베이스에서 검색된 계정 정보와 연결 요청을 비교하여 해당 요청이 트러스트된 계정에서 온 것인지 인증합니다. 보고서 서버에서 트러스트된 계정은 SharePoint 웹 응용 프로그램을 가장할 수 있는 권한이 있는 Windows 사용자입니다. 트러스트된 계정은 SPUser를 가장하는 데도 사용되지만 보고서 서버 항목 및 작업에 액세스할 수 있도록 허용되지 않습니다.

  • 연결 3
    인증이 성공적이면 보고서 서버는 Reporting Services 인스턴스의 사용자 계정을 통해 SharePoint 콘텐츠 데이터베이스에 연결하여 SPUser가 해당 항목이나 작업에 액세스할 권한이 있는지 확인합니다. 권한이 있으면 보고서 서버는 요청을 처리합니다.

  • 연결 4
    사용자가 보고서를 보고 있는 경우 보고서 서버에서는 "이중 홉" 문제 때문에 SPUser를 사용하여 외부 데이터 원본의 데이터를 검색할 수 없습니다. 따라서 보고서에서 데이터 원본 속성을 설정할 때 데이터 원본 연결에 대해 Windows 통합 보안 옵션을 선택할 수 없습니다. 그러나 저장된 자격 증명, 입력 정보를 요청하는 자격 증명 등의 다른 연결 옵션을 사용하도록 보고서를 구성할 수 있습니다. 자세한 내용은 SQL Server 온라인 설명서의 보고서 데이터 원본에 대한 자격 증명 및 연결 정보 지정방법: 공유 데이터 원본 만들기 및 관리(SharePoint 통합 모드의 Reporting Services)를 참조하십시오.

계정 만료 및 구독 처리

보고서에 대한 구독을 만드는 경우 보고서 서버에서는 배달 시 사용자에게 보고서를 볼 수 있는 권한이 있는지 확인할 수 있도록 SPUser 계정 정보를 저장합니다. SPUser가 만료된 경우 구독이 실패하며 rsSharePointError 오류가 반환됩니다. TokenTimeout이라는 팜 수준 속성에 따라 SPUser의 유효 기간이 결정됩니다.

고유한 도메인 사용자 계정을 사용하도록 관리 및 서비스 계정 구성

SharePoint 제품 또는 기술 배포는 다양한 계정을 사용하여 서비스를 실행하고 프런트 엔드 및 백 엔드 서버에 액세스합니다. 배포에 도메인 계정을 지정할 경우 최상의 권장 방법을 따라 SharePoint 웹 응용 프로그램에서만 사용하는 계정을 지정해야 합니다. 서비스 계정이 SharePoint 사이트에 액세스할 실제 사용자의 도메인 사용자 계정으로 실행되도록 구성하지 마십시오. 서비스 자격 증명을 사용하여 SharePoint 사이트에 액세스하면 오류가 발생할 수 있습니다.

확장 배포에서 인증 공급자를 구성하는 최상의 방법

Reporting Services 및 SharePoint 제품을 확장 배포한 경우 여러 인증 공급자가 환경에 구성되어 있으면 사용자 인증과 관련하여 문제가 발생할 수 있습니다. 예를 들어 보고 환경에서 인터넷 연결에는 폼 인증을 사용하고 인트라넷 연결에는 Windows 인증을 사용하는 경우 요청의 인증 유형과 일치하지 않는 인증 공급자를 사용하여 웹 프런트 엔드 컴퓨터로 요청이 라우팅될 수 있습니다. 이 경우 Reporting Services에서 요청의 액세스를 거부하거나, 요청을 수행한 사용자의 ID가 아닌 응용 프로그램 풀 ID로 요청이 실행될 수 있습니다.

가능하면 인터넷과 인트라넷에서 콘텐츠에 액세스할 때 각각 다른 URL을 사용하는 것이 좋습니다. 또는 인터넷 연결 사이트의 IP(인터넷 프로토콜) 주소를 인터넷 URL에 매핑하여 웹 프런트 엔드 컴퓨터의 호스트 파일에서 DNS(Domain Name System) 조회를 재정의하도록 구성함으로써 DNS를 통해 인터넷 URL에 대한 요청이 인트라넷 URL로 라우팅되지 않게 할 수 있습니다.

보고서 서버에서 SharePoint 콘텐츠 데이터베이스에 액세스하는 방법

SharePoint 웹 응용 프로그램과 보고서 서버 모두 해당 자체 데이터베이스에 연결하여 응용 프로그램 상태와 기타 데이터를 저장하지만 보고서 서버의 경우 SharePoint 데이터베이스에도 연결하여 항목, 속성 및 구성 설정을 저장하고 검색해야 합니다. 다음 다이어그램에서는 다양한 데이터베이스에 대한 서버 연결을 보여 줍니다.

연결 다이어그램

SharePoint 웹 응용 프로그램에서는 내부 저장소로 로컬 또는 원격 데이터베이스를 사용할 수 있습니다. SharePoint 데이터베이스가 원격 컴퓨터에 있는 경우 연결에 도메인 계정을 사용해야 합니다.

보고서 서버에서는 내부 저장소로 로컬 또는 원격 데이터베이스를 사용할 수 있습니다. 어떤 유형이든 도메인 계정, SQL Server 로그인 또는 기본 제공 계정(예: Network Service 또는 Local System)을 사용하여 데이터베이스에 연결할 수 있습니다.

SharePoint 데이터베이스에 대한 보고서 서버 연결

Reporting Services에서는 웹 서비스와 Windows 서비스 모두에 SharePoint 데이터베이스에 대한 액세스 권한이 필요합니다. 두 서비스에 대한 서비스 계정은 SharePoint 웹 응용 프로그램에서 트러스트된 사용자로 실행되며 SharePoint 데이터베이스에 액세스할 수 있는 권한이 자동으로 부여됩니다.

연결은 내부적으로 관리되며 사용자가 SharePoint 중앙 관리를 사용하여 SharePoint 웹 응용 프로그램을 보고서 서버에 지정하거나 트러스트된 계정을 설정할 때 구성됩니다. Reporting Services 구성 도구를 사용하여 설정 또는 수정할 수 있는 보고서 서버와 자체 데이터베이스 간 연결과 달리 SharePoint 데이터베이스에 대한 보고서 서버 연결은 명시적으로 구성하거나 관리할 수 없습니다.

SharePoint 통합 모드에서 보고서 서버를 실행하면 Reporting Services에서 서비스 계정을 구성하는 방법이 제한됩니다. 서비스 계정을 구성하는 경우 다음 지침을 참조하십시오.

  • 보고서 서버 서비스 계정을 통해 원격 컴퓨터의 SharePoint 데이터베이스에 연결해야 하는 경우 네트워크 로그온 권한이 있는 계정을 선택하십시오.

  • 보고서 서버와 SharePoint 데이터베이스가 같은 컴퓨터에 있고 SharePoint 웹 응용 프로그램이 원격 컴퓨터에 있는 경우 로컬 시스템이나 네트워크 서비스와 같은 기본 제공 계정을 사용하지 마십시오. SharePoint 데이터베이스가 원격 컴퓨터에서 실행되는 경우 SharePoint 웹 응용 프로그램에서는 해당 원격 컴퓨터에 정의되어 있는 기본 제공 계정에 대한 데이터베이스 액세스를 명시적으로 거부합니다. 따라서 보고서 서버가 기본 제공 계정에서 실행되고 있는 경우 SharePoint 데이터베이스와 동일한 컴퓨터에서 실행되기 때문에 SharePoint 데이터베이스에 연결할 수 없습니다.

  • 동일한 컴퓨터나 서로 다른 컴퓨터에 서버와 데이터베이스를 배치하는 다른 모든 토폴로지의 경우 Reporting Services 서비스 계정을 도메인 계정이나 기본 제공 계정으로 구성할 수 있습니다.

SharePoint 데이터베이스에 대한 연결 오류

보고서 서버에서 SharePoint 데이터베이스에 연결할 수 없고 구성 오류가 있는 경우(예: 서비스 계정 또는 암호가 올바르지 않거나 Windows SharePoint 개체 모델의 로컬 인스턴스가 설치되지 않은 경우) rsServerConfigurationError 오류가 발생합니다. 다른 모든 연결 오류의 경우에는 rsSharePointError 오류가 로컬 SharePoint 인스턴스의 추가 오류 정보와 함께 반환됩니다.

SharePoint 및 SSRS 인증 토폴로지

다음 표에서는 SharePoint 및 SSRS 인증 방식에서 지원되는 조합 및 사용 방법을 나열합니다.

동일 컴퓨터에서 SharePoint 및 SSRS 사용

SharePoint 인증

SSRS 통합 모드

SSRS 인증

SSRS 액세스 계정

데이터 원본 자격 증명

Kerberos

통합

협상

사용자, 사용자의 보안 컨텍스트를 위임할 수 있음

통합, 저장, 프롬프트

Kerberos

통합

NTLM

지원되지 않음

Kerberos

트러스트됨

협상 또는 NTLM

사이트 서비스 계정

저장, 프롬프트, 통합(+)

NTLM

통합

협상

지원되지 않음

NTLM

통합

NTLM

사용자, 사용자의 보안 컨텍스트를 위임할 수 없음

저장, 프롬프트, 통합, 로컬

NTLM

트러스트됨

협상 또는 NTLM

사이트 서비스 계정

저장, 프롬프트, 통합(+)

양식

통합

IUSR

지원되지 않음

양식

트러스트됨

협상 또는 NTLM

사이트 서비스 계정

저장, 프롬프트, 통합(+)

아니요

Kerberos

통합

협상

사용자 위임 가능

통합, 저장, 프롬프트

아니요

Kerberos

통합

NTLM

지원되지 않음

아니요

Kerberos

트러스트됨(*)

협상

사이트 서비스 계정

저장, 프롬프트, 통합(+)

아니요

Kerberos

트러스트됨(*)

협상

사이트 서비스 계정

저장, 프롬프트, 통합, SSRS에 로컬인 경우만

아니요

NTLM

통합

익명

지원되지 않음

아니요

NTLM

트러스트됨(*)

협상

사이트 서비스 계정

저장, 프롬프트, 통합(+)

아니요

NTLM

트러스트됨(*)

NTLM

사이트 서비스 계정

저장, 프롬프트, 통합, 로컬인 경우만

아니요

양식

통합

익명

지원되지 않음

아니요

양식

트러스트됨(*)

협상

사이트 서비스 계정

저장, 프롬프트, 통합(+)

아니요

양식

트러스트됨

NTLM

사이트 서비스 계정

저장, 프롬프트, 통합, 로컬인 경우만

(+) SharePoint 사이트 서비스 계정이 로컬 계정인 경우 데이터 원본은 보고서 서버 컴퓨터의 로컬 데이터 원본이어야 합니다. 사이트 서비스 계정이 도메인 계정인 경우 데이터 원본은 다른 컴퓨터에 있을 수 있습니다.

(*) SharePoint 사이트 서비스 계정은 도메인 계정이어야 합니다.

변경 내역

업데이트된 내용

인증 토폴로지 테이블이 추가되었습니다.