2014-02-10 2 views
1

웹 앱 사용자가 SSRS 사용자에게 매핑되는 웹 앱 역할에 매핑되는 SSRS에 대한 간단한 웹 인터페이스를 구축하고 있습니다.ssrs 웹 서비스 : 웹 서비스 액세스에 필요한 기본 권한?

이 복잡한 구성의 이유는 논쟁의 여지가 없습니다. 즉, AD 그룹을 사용할 수 없으며 사이트에서 양식 인증을 사용하고 고정 된 역할 수가 있습니다.

Web Role | SSRS User 

Admin  | AdminUser 
Supervisor | SuperUser 
User  | BasicUser 
Guest  | GuestUser 

목표는 사용자가 볼 수있는 권한이있는 모든 보고서를 열거하고 사용자가 ReportViewer 컨트롤을 사용하여 보고서를 볼 수있게하는 것입니다.

더 중요한 것은 admin과 나머지 사용자 모두를위한 UX를 단순화하는 것입니다. 즉, 관리자가 Report Manager 웹 사이트를 사용하지 못하도록합니다 (즉, 웹 역할 사용자가 액세스 할 수있는 손으로 타이핑하지 않고 체크 박스를 선택하는 것). 사용자가 모든 보고서를보고 실행할 수있는 간단한 UI를 제공합니다.

사용자가 AdminUser이면 모든 것이 정상적으로 작동합니다.

그러나 브라우저 SSRS 역할 이상으로 홈/루트 폴더의 정책에 사용자가 포함되어 있지 않으면 웹 서비스를 호출하는 데 어려움을 겪고 있습니다. ('컴퓨터 \ 사용자 이름'사용자에게 부여 된 권한은이 작업을 수행 할 수 없습니다.)

이것은 몇 가지 이유로 문제가있다 : 모든 사용자가 웹 서비스에 연결하는 브라우저이어야합니다

  1. 뷰/실행에 액세스 할 수있는 보고서를 열거하면 모든 사용자가 기본적으로 모든 새 보고서/폴더에 액세스 할 수 있습니다. 자식은 자동으로 새 사용 권한을 상속받습니다.
  2. 권한을 상속하지 않고 사용자가 브라우저가 아니지만 중첩 된 보고서의 브라우저 인 경우 중첩 폴더에 보고서가있는 경우 ListChildren()은 해당 보고서를 반환하지 않습니다.

이상적인 옵션이 2 적은 나 잎 보인다

  1. 가 다른 사용자와 웹 서비스를 호출하지 마십시오. 대신 admin 사용자 만 사용하여 ListChildren()으로 보고서를 열거하십시오. 그런 다음 각 보고서에 대해 GetPolicies()으로 전화를 걸고 해당 정책 컬렉션에서 사용자가 볼 수있는 보고서를 결정합니다.
  2. 다른 사용자와 통화하십시오. 권한이 변경 될 때까지 기본적으로 모든 사람이 액세스 할 수있는 새로 게시 된 보고서의 함정에 따라 생활하십시오. 또한 사용자가 해당 경로에 대한 액세스 권한이없는 경우 표시되지 않는 중첩 된 보고서의 함정과 함께 살아야합니다. 관리자가 명시 적 권한이있는 폴더 내의 중첩 된 보고서를 해당 폴더를 볼 수없는 사용자가 사용할 수있게하려면 모든 상위 폴더 및 해당 하위의 정책을 수정해야합니다.

# 1은 분명히 매우 다루기 어렵고 비효율적입니다. 그러나 # 2는 심각한 단점이 있으며 특정 상황에서 권한을 설정할 때 비효율적 인 번거 로움이됩니다.

더 좋은 방법이 있습니까? 나는 명백한 것을 놓쳤는가?


[편집]

세 번 째 옵션은 직접 쿼리 like this를 사용하여 ReportServer 데이터베이스를 조회하는 것입니다. 이것은 사용자가 액세스 할 수없는 하위 폴더 (예 : 웹 서비스의 ListChildren 메서드를 검색 할 수 없음)에 존재하는지 여부에 관계없이 사용자가 액세스 할 수있는 모든 것을 반환하는 이점이 있습니다. 그러나 AD 그룹을 사용하는 경우 사용자가 속한 그룹을 알아야합니다. 반면 웹 서비스는 나를 위해이 작업을 수행합니다. 이 옵션은 나에게 약간의 해킹처럼 느껴지지만 작동 할 수 있습니다.

웹 역할에 의한 보고서 액세스를 제한하는 요구 사항을 삭제하여이 문제를 해결하는 최종 경로를 실행하고 웹 서비스에서 쿼리하는 경로를 변경할 수있는 web.config 설정을 만들었습니다. 보고서 작성자는 필요가 발생할 경우 상위 폴더의 보고서를 '숨길'수 있습니다.

+0

양식 인증을 사용하도록 SSRS를 구성 했습니까? 아니면 "SSRS 사용자"AD 계정입니까? – kyzen

+0

효과적으로 AD 계정 (로컬 Windows 사용자) – JoeBrockhaus

+1

SSRS가 양식 인증을 사용하도록 구성하고 자격 증명 풀에 대한 기존 사용자 데이터베이스에 연결하는 것이 옵션일까요? 다른 시스템에서도 가질 수있는 역할 기반 보안 규칙을 브리징 할 수 있습니다. – kyzen

답변

0

최상의 솔루션은 ReportServer 데이터베이스를 직접 쿼리하는 것이 었습니다.

그러나 클라이언트가 마음을 바꿨습니다. & 결국 웹 사용자 역할을 기반으로하는 보고서를 제한하고 싶지 않으므로 문제가 해결되었습니다.