기본적으로 Reporting Services는 협상 및 NTLM 인증을 지정하는 요청을 수락합니다. 배포에 기본 인증을 사용하는 클라이언트 애플리케이션 또는 브라우저가 포함된 경우 지원되는 형식 목록에 기본 인증을 추가해야 합니다. 또한 보고서 작성기를 사용하려면 보고서 작성기 파일에 대한 익명 액세스를 사용하도록 설정해야 합니다.
보고서 서버에서 기본 인증을 구성하려면 RSReportServer.config 파일에서 XML 요소와 값을 편집합니다. 이 항목의 예제를 복사하여 붙여넣어 기본값을 바꿀 수 있습니다.
기본 인증을 사용하도록 설정하기 전에 보안 인프라에서 지원하는지 확인합니다. 기본 인증에서 보고서 서버 웹 서비스는 로컬 보안 기관에 자격 증명을 전달합니다. 자격 증명이 로컬 사용자 계정을 지정하는 경우 사용자는 보고서 서버 컴퓨터의 로컬 보안 기관에 의해 인증되고 사용자는 로컬 리소스에 유효한 보안 토큰을 받게 됩니다. 도메인 사용자 계정에 대한 자격 증명은 도메인 컨트롤러에 전달되고 인증됩니다. 결과 티켓은 네트워크 리소스에 유효합니다.
네트워크의 도메인 컨트롤러로 전송하는 동안 자격 증명이 가로채는 위험을 완화하려면 SSL(Secure Sockets Layer)과 같은 채널 암호화가 필요합니다. 기본 인증은 그 자체로 사용자 이름을 기본 64 인코딩에서 명확한 텍스트로 전송하고 암호를 전송합니다. 채널 암호화를 추가하면 패킷을 읽을 수 없게 됩니다. 자세한 내용은 기본 모드 보고서 서버에서 SSL 연결 구성을 참조하세요.
기본 인증을 사용하도록 설정한 후에는 사용자가 보고서에 데이터를 제공하는 외부 데이터 원본에 연결 속성을 설정할 때 Windows 통합 보안 옵션을 선택할 수 없습니다. 이 옵션은 데이터 원본 속성 페이지에서 회색으로 표시됩니다.
비고
다음 지침은 기본 모드 보고서 서버를 위한 것입니다. 보고서 서버가 SharePoint 통합 모드로 배포된 경우 Windows 통합 보안을 지정하는 기본 인증 설정을 사용해야 합니다. 보고서 서버는 기본 Windows 인증 확장의 내부 기능을 사용하여 SharePoint 통합 모드에서 보고서 서버를 지원합니다.
기본 인증을 사용하도록 보고서 서버를 구성하려면
텍스트 편집기에서 RSReportServer.config 엽니다.
파일은 드라이브>:\Program Files\Microsoft SQL Server\MSRS12에< 있습니다. MSSQLSERVER\Reporting Services\ReportServer.
<
Authentication>를 찾습니다.요구 사항에 가장 적합한 다음 XML 구조 중 하나를 복사합니다. 첫 번째 XML 구조는 다음 섹션에서 설명하는 모든 요소를 지정하기 위한 자리 표시자를 제공합니다.
<Authentication> <AuthenticationTypes> <RSWindowsBasic> <LogonMethod>3</LogonMethod> <Realm></Realm> <DefaultDomain></DefaultDomain> </RSWindowsBasic> </AuthenticationTypes> <EnableAuthPersistence>true</EnableAuthPersistence> </Authentication>기본값을 사용하는 경우 최소 요소 구조를 복사할 수 있습니다.
<AuthenticationTypes> <RSWindowsBasic/> </AuthenticationTypes>에 대한 기존 항목 위에 붙여넣습니다 <
Authentication>.여러 인증 유형을 사용하는 경우 요소만
RSWindowsBasic추가하지만 ,RSWindowsNTLM또는RSWindowsKerberos에 대한RSWindowsNegotiate항목을 삭제하지 마세요.Safari 브라우저를 지원하려면 여러 인증 유형을 사용하도록 보고서 서버를 구성할 수 없습니다.
RSWindowsBasic만 지정하고 다른 항목들은 삭제해야 합니다.다른 인증 유형에는 사용할
Custom수 없습니다.빈 값을 <
Realm> 사용하거나 <DefaultDomain> 사용자 환경에 유효한 값으로 대체합니다.파일을 저장합니다.
스케일 아웃 배포를 구성한 경우 배포의 다른 보고서 서버에 대해 이러한 단계를 반복합니다.
보고서 서버를 다시 시작하여 현재 열려 있는 세션을 지웁니다.
RSWindowsBasic 레퍼런스
기본 인증을 구성할 때 다음 요소를 지정할 수 있습니다.
| 요소 | 필수 | 유효한 값 |
|---|---|---|
| 로그온 방법 | 예 값을 지정하지 않으면 3이 사용됩니다. |
2 = 일반 텍스트 암호를 인증하는 고성능 서버를 위한 네트워크 로그온입니다.3 = Cleartext 로그온- 각 HTTP 요청과 함께 전송되는 인증 패키지에서 로그온 자격 증명을 유지하므로 서버가 네트워크의 다른 서버에 연결할 때 사용자를 가장할 수 있습니다. (기본값)참고: 값 0(대화형 로그온의 경우) 및 1(일괄 로그온의 경우)은 SQL Server 2014 Reporting Services(SSRS)에서 지원되지 않습니다. |
| 영역 | 선택적 | 조직의 보호된 리소스에 대한 액세스를 제어하는 데 사용되는 권한 부여 및 인증 기능을 포함하는 리소스 파티션을 지정합니다. |
| DefaultDomain | 선택적 | 서버에서 사용자를 인증하는 데 사용하는 도메인을 지정합니다. 이 값은 선택 사항이지만 생략하면 보고서 서버는 컴퓨터 이름을 도메인으로 사용합니다. 컴퓨터가 도메인의 구성원인 경우 해당 도메인은 기본 도메인입니다. 도메인 컨트롤러에 보고서 서버를 설치한 경우에는 컴퓨터에서 제어되는 도메인이 사용됩니다. |
보고서 작성기 애플리케이션 파일에 대한 익명 액세스 사용
보고서 작성기에서는 ClickOnce 기술을 사용하여 클라이언트 컴퓨터에 애플리케이션 파일을 다운로드하고 설치합니다. 클라이언트 컴퓨터에서 시작하면 ClickOnce 애플리케이션 시작 관리자가 보고서 서버 컴퓨터의 추가 애플리케이션 파일을 요청합니다. 보고서 서버가 기본 인증에 대해 구성된 경우 ClickOnce 애플리케이션 시작 관리자가 기본 인증을 지원하지 않으므로 인증 검사에 실패합니다.
이 문제를 해결하려면 보고서 작성기 프로그램 파일에 대한 익명 액세스를 구성할 수 있습니다. 이렇게 하면 ClickOnce가 파일을 검색할 때 인증 검사를 무시할 수 있습니다. 다음을 수행하여 익명 액세스를 사용하도록 설정합니다.
보고서 서버가 기본 인증용으로 구성되어 있는지 확인합니다.
ReportBuilder 아래에 bin 폴더를 만들고 4개의 어셈블리를 폴더에 복사합니다.
IsReportBuilderAnonymousAccessEnabled요소를 RSReportServer.config에 추가하고True로 설정합니다. 파일을 저장한 후 보고서 서버는 보고서 작성기에서 새 엔드포인트를 만듭니다. 엔드포인트는 내부적으로 프로그램 파일에 액세스하는 데 사용되며 코드에서 사용할 수 있는 프로그래밍 방식 인터페이스가 없습니다. 별도의 엔드포인트를 사용하면 보고서 작성기를 보고서 서버 서비스 프로세스 경계 내의 자체 애플리케이션 도메인에서 실행할 수 있습니다.필요에 따라 보고서 서버와 다른 보안 컨텍스트에서 요청을 처리하는 최소 권한 계정을 지정할 수 있습니다. 이 계정은 보고서 서버에서 보고서 작성기 파일에 액세스하기 위한 익명 계정이 됩니다. 계정은 ASP.NET 작업자 프로세스에서 스레드의 ID를 설정합니다. 해당 스레드에서 실행되는 요청은 인증 검사 없이 보고서 서버로 전달됩니다. 이 계정은 익명 액세스 및 가장이 활성화되었을 때 ASP.NET 작업자 프로세스의 보안 컨텍스트를 설정하는 데 사용되는 인터넷 정보 서비스(IIS)의 IUSR_<machine> 계정과 동일합니다. 계정을 지정하려면 보고서 작성기 Web.config 파일에 추가합니다.
보고서 작성기 프로그램 파일에 익명 액세스를 사용하려면 기본 인증을 위해 보고서 서버를 구성해야 합니다. 보고서 서버가 기본 인증에 대해 구성되지 않은 경우 익명 액세스를 사용하도록 설정하려고 하면 오류가 발생합니다.
인증 문제 및 보고서 작성기에 대한 자세한 내용은 보고서 작성기 액세스 구성을 참조하세요.
기본 인증을 위해 구성된 보고서 서버에서 보고서 작성기 액세스를 구성하려면
RSReportServer.config 파일에서 인증 설정을 확인하여 보고서 서버가 기본 인증에 대해 구성되었는지 확인합니다.
ReportBuilder 폴더 아래에 BIN 폴더를 만듭니다. 기본적으로 이 폴더는 \Program Files\Microsoft SQL Server\MSRS12에 있습니다. MSSQLSERVER\Reporting Services\ReportServer\ReportBuilder.
ReportServer\Bin 폴더에서 ReportBuilder\BIN 폴더로 다음 어셈블리를 복사합니다.
Microsoft.ReportingServices.Diagnostics.dll
Microsoft.ReportingServices.Interfaces.dll
ReportingServicesAppDomainManager.dll
RSHttpRuntime.dll
필요에 따라 익명 계정으로 보고서 작성기 요청을 처리하는 Web.config 파일을 만듭니다.
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.web> <authentication mode="Windows" /> <identity impersonate="true " userName="username" password="password"/> </system.web> </configuration>Web.config 파일을 포함하는 경우 인증 모드를 설정
Windows해야 합니다.Identity impersonate은True또는False가 될 수 있습니다.ASP.NET에서 보안 토큰을 읽지 않으려면
False로 설정하십시오. 요청은 보고서 서버 서비스의 보안 컨텍스트에서 실행됩니다.True로 설정하여 ASP.NET이 호스트 계층에서 보안 토큰을 읽도록 하려면 설정하십시오.True로 설정하는 경우, 익명 계정을 지정하려면userName과password도 지정해야 합니다. 지정한 자격 증명은 요청이 발급되는 보안 컨텍스트를 결정합니다.
Web.config 파일을 ReportBuilder\bin 폴더에 저장합니다.
서비스 섹션에서
IsReportManagerEnabledRSReportServer.config 파일을 열고 그 아래에 다음 설정을 추가합니다.<IsReportBuilderAnonymousAccessEnabled>True</IsReportBuilderAnonymousAccessEnabled>RSReportServer.config 저장하고 파일을 닫습니다.
보고서 서버를 다시 시작합니다.