확장에 대한 보안 고려 사항

CLR(공용 언어 런타임)을 대상으로 하는 모든 애플리케이션은 CLR 보안 시스템과 상호 작용해야 합니다. 이러한 애플리케이션이 실행되면 CLR에서 자동으로 평가되고 사용 권한 집합이 부여됩니다. 애플리케이션이 받는 권한에 따라 계속 실행되거나 보안 예외가 생성됩니다. 특정 보고서 서버에 대한 보안 정책 구성 파일의 로컬 보안 설정 및 정책은 어셈블리에서 수신하는 코드 권한을 정의합니다.

사용 권한을 요청하기 전에 확장 코드에서 사용할 리소스 및 보호된 작업을 알고 있어야 하며, 이러한 리소스 및 작업을 보호하는 권한도 알아야 합니다. 또한 확장 구성 요소에서 호출하는 클래스 라이브러리 메서드에서 액세스하는 리소스를 추적해야 합니다. 자세한 내용은 .NET Framework 개발자 가이드의 “권한 요청”을 참조하세요.

보고서 서버에 배포된 확장은 완전히 신뢰할 수 있는 것으로 실행되어야 합니다. 즉, 확장이 FullTrust 권한 집합을 부여받은 코드 그룹의 일부여야 합니다. 즉, 확장이 특정 보고서에 대해 인증되는 사용자에 따라 CLR을 통해 사용할 수 있는 특정 서버 리소스 및 작업에 액세스할 수 있습니다. 코드 그룹 및 확장에 대한 자세한 내용은 Reporting Services의 코드 액세스 보안을 참조 하세요.

Important

Reporting Services는 모든 확장에 .NET Framework 보안을 적용합니다.

Reporting Services에서 데이터 처리, 배달, 렌더링, 보안 확장 프로그램의 배포에 다음 조건이 적용됩니다.

  • 로컬 관리자만 확장을 배포할 수 있는 권한이 있습니다.

  • 적절한 읽기/쓰기 권한을 가진 사용자만 확장할 Reporting Services 구성 요소에 대한 구성 파일을 변경할 수 있습니다.

  • 권한 있는 사용자만 보안 정책 파일을 편집하고 확장에 대한 코드 액세스 보안을 사용하도록 설정할 수 있는 권한이 있습니다.

Reporting Services의 코드 액세스 보안에 대한 자세한 내용은 보안 개발(Reporting Services)을 참조하세요.

.NET Framework 보안에 대한 자세한 내용은 .NET Framework 개발자 가이드의 “.NET Framework 보안”을 참조하세요.

확장 어셈블리 초기화

일부 확장 어셈블리는 시스템 리소스에 액세스하고, 구성 파일을 읽고, 다른 종속 어셈블리를 로드하기 위해 특정 권한이 필요하기 때문에 보고서 서버에서 확장이 먼저 메모리에 로드될 때 서비스 계정 자격 증명을 사용합니다. 그러나 어셈블리를 로드하고 초기화한 후 확장 어셈블리에 대한 모든 후속 호출은 현재 로그온된 사용자 계정의 자격 증명을 사용합니다.