사용자 지정 보안 확장 프로그램을 설치 하는 방법How to install custom security extensions

이 항목 적용 대상:THIS TOPIC APPLIES TO: 예SQL Server Reporting Services(2016 이상)SQL Server Reporting Services (2016 and later) 예Power BI 보고서 서버Power BI Report Server 예SQL Server Reporting Services(2016 이상)SQL Server Reporting Services (2016 and later) 예Power BI 보고서 서버Power BI Report Server

Reporting Services 2016 새로운 Odata Api를 호스트 하 고도 모바일 보고서 및 KPI와 같은 새 보고서 작업 부하를 호스트 하기 위해 새 웹 포털을 도입 되었습니다.Reporting Services 2016 introduced a new web portal in order to host new Odata APIs and also host new report workloads such as mobile reports and KPIS. 이 새로운 포털 최신 기술에 의존 하며 별도의 프로세스로 실행 하 여 친숙 한 ReportingServicesService 으로부터 격리 됩니다.This new portal relies on newer technologies and is isolated from the familiar ReportingServicesService by running in a separate process. 이 프로세스는 호스팅되는 ASP.NET 응용 프로그램 아니며 따라서 기존 사용자 지정 보안 확장 프로그램을 가정을 중단 합니다.This process is not an ASP.NET hosted application and as such breaks assumptions from existing custom security extensions. 또한 사용자 지정 보안 확장 프로그램에 대 한 현재 인터페이스 허용 안 함 전달 되도록 모든 외부 컨텍스트에 대해 구현자만 선택 전역 하는 잘 알려진 ASP.NET 개체를 검사 하는 그대로 두고이 필수 인터페이스를 변경 합니다.Moreover, the current interfaces for custom security extensions don't allow for any external context to be passed-in, leaving implementers with the only choice to inspect well-known global ASP.NET Objects, this required some changes to the interface.

변경 기능What Changed?

도입 된 새로운 인터페이스를 구현할 수 인증과 관련 된 결정을 내릴 수 확장에서 사용 하는 보다 일반적인 속성을 제공 하는 IRSRequestContext 제공 하는 합니다.A new interface was introduced that can be implemented which provides an IRSRequestContext providing the more common properties used by extensions to make decisions related to authentication.

이전 버전에서는 보고서 관리자 프런트 엔드 이었으며 자체 사용자 지정 로그인 페이지를 구성할 수 있습니다.In previous versions, Report Manager was the front-end and could be configured with its own custom login page. Reporting Services 2016에서 응용 프로그램에서 모두 인증 해야 및 reportserver에서 호스트 한 페이지만 지원 됩니다.In Reporting Services 2016, only one page hosted by reportserver is supported and should authenticate to both applications.

구현Implementation

이전 버전에서는 확장 일반적인 ASP.NET 개체를 즉시 사용할 수 있다고 가정에 의존 수 없습니다.In previous versions, extensions could rely on a common assumption that ASP.NET objects would be readily available. 새 포털 ASP.NET에서 실행 되지 않으면, 이후 확장 개체가 NULL이 될 문제 였으며 수 있습니다.Since the new portal does not run in ASP.NET, the extension might hit issues with objects being NULL.

가장 일반적인 예는 헤더 및 쿠키와 같은 요청 정보를 읽을 수는 HttpContext.Current에 액세스 하는 합니다.The most generic example is accessing HttpContext.Current to read request information such as headers and cookies. 확장 같은 결정을 할 수 있도록 포털에서 인증 될 때 호출 및 요청 정보를 제공 하는 확장에는 새로운 방법이 도입 되었습니다.In order to allow extensions to make the same decisions we introduced a new method in the extension that provides request information and is called when authenticating from the portal.

확장에는 구현 하는 IAuthenticationExtension2 이 이용 하려면 인터페이스입니다.Extensions have to implement the IAuthenticationExtension2 interface in order to leverage this. 확장의 두 버전을 구현 해야 합니다 GetUserInfo 메소드 reportserver 컨텍스트 및 웹 호스트 프로세스에 사용 된 기타 의해 호출 됩니다.The extensions will need to implement both versions of GetUserInfo method, as is called by the reportserver context and other used in webhost process. 다음 예제는 reportserver 하 여 해결 하는 id가 사용 되는 포털에 대 한 간단한 구현 중 하나를 보여 줍니다.The sample below shows one of the simple implementations for the portal where the identity resolved by the reportserver is the one used.

public void GetUserInfo(IRSRequestContext requestContext, out IIdentity userIdentity, out IntPtr userId)
{
    userIdentity = null;
    if (requestContext.User != null)
    {
        userIdentity = requestContext.User;
    }

    // initialize a pointer to the current user id to zero
    userId = IntPtr.Zero;
}

배포 및 구성Deployment and Configuration

사용자 지정 보안 확장 프로그램에 필요한 기본 구성으로 이전 릴리스와 동일 합니다.The basic configurations needed for custom security extension are the same as previous releases. Web.config 및 rsreportserver.config에 대 한 변경이 필요한: 자세한 내용은 참조 구성 사용자 지정 또는 보고서 서버에서 폼 인증합니다.Changes are needed for web.config and rsreportserver.config: For more information, see Configure Custom or Forms Authentication on the Report Server.

더 이상 별도 보고서 관리자에 대 한 web.config를 포털 reportserver 끝점으로 동일한 설정을 상속 합니다.There is no longer a separate web.config for the Report Manager, the portal will inherit the same settings as the reportserver endpoint.

컴퓨터 키Machine Keys

인증 쿠키의 암호를 해독 해야 하는 폼 인증의 경우 두 프로세스를 같은 컴퓨터 키 및 암호 해독 알고리즘을 사용 하 여 구성 해야 합니다.For the case of Forms authentication which requires the decryption of the Authentication cookie, both processes need to be configured with the same machine key and decryption algorithm. 이 이전에 설치 Reporting Services 확장 환경에서 작동 하도록 수 있었지만 이제는 단일 컴퓨터에 배포 하는 경우에 요구 사항이 사용자에 게 친숙 한 단계입니다.This was a step familiar to those who had previously setup Reporting Services to work on scale-out environments, but now is a requirement even for deployments on a single machine.

인터넷 정보 서비스 관리자 (IIS)와 같은 키를 생성 하는 여러 가지 도구도 하면 배포에 대 한 유효성 검사 키 특정을 사용 하도록 합니다.You should use a validation key specific for you deployment, there are several tools to generate the keys like Internet Information Services Manager (IIS). 인터넷에서 다른 도구를 찾을 수 있습니다.Other tools can be found on the internet.

SQL Server Reporting Services 2017 이상SQL Server Reporting Services 2017 and later

\ReportServer\rsReportServer.config\ReportServer\rsReportServer.config

아래에서 추가 <configuration>합니다.Add under <configuration>.

<machineKey validationKey="[YOUR KEY]" decryptionKey=="[YOUR KEY]" validation="AES" decryption="AES" />

SQL Server Reporting Services 2016SQL Server Reporting Services 2016

\ReportServer\web.config\ReportServer\web.config

아래에서 추가 <system.web>합니다.Add under <system.web>.

    <machineKey validationKey="[YOUR KEY]" decryptionKey=="[YOUR KEY]" validation="AES" decryption="AES" />

\RSWebApp\Microsoft.ReportingServices.Portal.WebHost.exe.config\RSWebApp\Microsoft.ReportingServices.Portal.WebHost.exe.config

아래에서 추가 <configuration>합니다.Add under <configuration>.

    <system.web>
        <machineKey validationKey=="[YOUR KEY]" decryptionKey=="[YOUR KEY]" validation="AES" decryption="AES" />
    </system.web>

Power BI 보고서 서버Power BI Report Server

이 현재 2017 년 6 월 (빌드 14.0.600.301) 릴리스에서 사용할 수 있습니다.This is available as of the June 2017 (Build 14.0.600.301) release.

\ReportServer\rsReportServer.config\ReportServer\rsReportServer.config

아래에서 추가 <configuration>합니다.Add under <configuration>.

<machineKey validationKey="[YOUR KEY]" decryptionKey=="[YOUR KEY]" validation="AES" decryption="AES" />

통과 쿠키를 구성 합니다.Configure Passthrough cookies

새 포털 및 reportserver는 일부 작업 (이전 버전의 보고서 관리자와 유사)에 대 한 내부 soap Api를 사용 하 여 통신 합니다.The new portal and the reportserver communicate using internal soap APIs for some of its operations (similar to the previous version of the Report Manager). 추가 쿠키는 포털에서 서버에 전달 해야 하는 경우에 PassThroughCookies 속성은 계속 사용할 수 있습니다.When additional cookies are required to be passed from the portal to the server the PassThroughCookies properties is still available. 자세한 내용은 참조 사용자 지정 인증 쿠키를 전달 하려면 웹 포털 구성합니다.For more information, see Configure the Web Portal to Pass Custom Authentication Cookies.

<UI>
   <CustomAuthenticationUI>
      <PassThroughCookies>
         <PassThroughCookie>sqlAuthCookie</PassThroughCookie>
      </PassThroughCookies>
   </CustomAuthenticationUI>
</UI>

다음 단계Next steps

보고서 서버에서 사용자 지정 또는 폼 인증 구성Configure Custom or Forms Authentication on the Report Server
사용자 지정 인증 쿠키를 전달 하도록 보고서 관리자 구성Configure Report Manager to Pass Custom Authentication Cookies

문의:More questions? Reporting Services 포럼에서 질문Try asking the Reporting Services forum