2011-11-02 3 views
0

SSRS 웹 서비스 ReportService2005.asmx 및 ReportExecution2005.asmx에 대한 호출을 사용하는 ASP.NET 웹 응용 프로그램이 있습니다.SSRS 웹 서비스 보안

사용되는 기술은 ASP.NET 3.5이며, 비주얼 스튜디오 2008 및 SQL Server 2008 R2

사용자 로그 상 (I이 아닌 ReportService2010를 사용하는 코드 라이브러리를 사용하고있어 나는이 ReportService2005을 사용하고 있습니다) 폼 인증을 사용하는 시스템. 그런 다음 사용자는보고 페이지로 이동합니다. 사용자는 원하는 수의 보고서 그룹에 속할 수 있습니다 (각 그룹에는 원하는 수의 보고서가 포함될 수 있음). 보고서 그룹, 관련 보고서 및 보고서 그룹에 할당 된 사용자는 웹 응용 프로그램 내의 페이지에 의해 제어되고 웹 응용 프로그램 데이터베이스 (SSRS 데이터베이스 아님)의 일련의 테이블에 저장됩니다.

현재 ReportService2005.asmx 및 ReportExecution2005.asmx에 대한 액세스는 서버의 기본 자격 증명을 사용하여 수행됩니다. 이거 안전한가요? 이 하나의 기본 신임장을 통해 서버의 모든 보고서에 액세스 할 수 있습니다. 사용자가 볼 수있는 보고서에 대한 유일한 제한은 프론트 엔드 애플리케이션에 의해 강제 적용됩니다. 자바 스크립트?

내가 원하는 것은 웹 응용 프로그램 데이터베이스에서 일련의 보고서/사용자/그룹 테이블을 제거하고 SSRS 스키마를 사용할 수있는 방법입니다. 예 :

사용자 A (회사 A의 직원)는 재무 보고서 그룹 및 마케팅 보고서 그룹에 속합니다. 재무 그룹에는 재무 보고서 1과 재무 보고서 2가 포함됩니다. 마케팅 그룹에는 마케팅 보고서 1이 포함됩니다.

위의 보고서는 보고서 관리자의 재무 및 마케팅 폴더에 저장됩니다.

그러면 보고서 서버에서 Windows 사용자 (MarketingFinance라고 함)를 만들고 해당 사용자에게 마케팅 및 재무 폴더에 대한 적절한 사용 권한을 부여 할 수 있습니다. 그러면 사용자 A는 MarketingFinance 사용자와 링크하기 위해 자신의 .net membershipprovider 프로필에 일종의 플래그를 가지고 있어야합니다.

그러나 문제는 사용자 지정 보고서 그룹을 만들거나 수정할 때마다 보고서 서버에서 새 Windows 사용자를 만들어야한다는 것입니다. 위의 예를 사용하면 판매 보고서 그룹이 생성되고 사용자 B가 추가됩니다. 이제 Sales 폴더에 액세스하도록 설정된 적절한 사용 권한이있는 보고서 서버에 Windows 사용자 (Sales)가 있어야합니다. 또한 웹 응용 프로그램의 여러 클라이언트는 Sales/Marketing 등 그룹의 고유 한 버전을 잠재적으로 Windows 사용자 수를 수천 배로 늘리 길 원할 것입니다!

나는 SSRS의 초보자이므로 잘못보고있을 수 있습니다.이 문제를 단순화하기 위해 역할을 사용할 수 있습니까?

보고서는 대부분 회사에서 동일하게 적용될 수 있지만 (회사에서는 회사의 응용 프로그램을 의미 함) 각 회사는 서로 다른 폴더에 보고서를 설정하려고 할 수 있습니다. 즉 A 회사 재무 폴더에는 보고서 A, 보고서 B 및 보고서 C가 있지만 회사 B 재무 폴더에는 보고서 A 만 있습니다. 아마도 보고서 링크를 통해 두 폴더에 보고서 A의 물리적 사본 2 개가 있어야하는 것을 방지 할 수 있습니까?

답변

0

몇 가지 질문을 하나로 묶어 보았습니다. "여러 보안 계정으로 SSRS 액세스를 설정하면 내 보안이 향상됩니까?"라는 근본적인 질문을 해결하려고 노력할 것입니다.

... 안전한가요?

안전한 것은 바이너리가 아닙니다.이 질문은 "충분히 안전합니까?"라는 문구를 다시 말해야합니다. 그리고 그에 대한 대답은 보유하고있는 데이터, 응용 프로그램 노출 및 기타 고려 사항에 따라 다릅니다. (회사 내부 응용 프로그램에 판매 수치는 인터넷에 게시 대기업의 R & D 결과와는 다른 답을해야한다.)

사용자가 볼 수있는 보고서에 대한 유일한 제한은 프론트 엔드 응용 프로그램에 의해 시행 될 것이다 아마도 예를 들어 자바 스크립트?

Reporting Services 사용자를 다른 계정으로 분류하는 것이이 문제를 해결하는 데별로 도움이되지 않습니다. 현재 다른 사용자의 페이지로 이동할 수있는 경우 SSRS 자격 증명을 변경하면 무엇이 변경됩니까? 액세스해야하는 SSRS 보고서를 제공하기 위해 클라이언트 측 Javascript에 의존하는 경우, 서버 측에서이를 점검하여 그들이 부적절한 것을 요청하지 않는지 확인해야합니다.

SSRS 서버가 인터넷에서 직접 액세스 할 수 없는지 확인하는 데 중점을 두 었으며 응용 프로그램의 보안을 유지하는 데 집중했습니다. Javascript를 변경하는 누군가를 통해 귀하의 사이트가 취약하다고 생각할만한 이유가 있다면 해당 문제를 해결하십시오.

SSRS에 대한 사용자 액세스 권한을 사일로에 넣는 것은 프론트 엔드 응용 프로그램이 매우 별도의 사일로를 사용하지 않는 한 보안상의 이유로 나에게별로 의미가 없습니다. 일을 관리 가능하게 유지하고 오류를 피할 수는 있지만 많은 보안이 추가되지는 않습니다.

(또한, 귀하가 제안하는 솔루션이 어딘가에 저장 더 암호를 추가, 당신은 더 큰 문제를 설정 될 수 있도록하는 보통, 약간의 추가 보호를받을 자격이.)이 하나의 괴짜의도이다

; 귀하의 마일리지는 다를 수 있습니다; 내 두 센트 ...

+0

답장을 보내 주셔서 감사합니다. Javascript 보안 문제는 아주 작은 것이 었습니다. 보고서에는 모두 숫자 ID가 있으며 ID를 서버에 스푸핑 할 수 있다고 생각하고 모든 보고서에 액세스 할 수있는보고 서버 사용자가 한 명 있기 때문에 보안이 손상 될 수 있습니다. 각 웹 사용자가 보고서의 하위 집합에만 액세스 할 수 있고이 웹 사용자가보고 서버 사용자와 연결되어있는 경우 위조 된 ID가 전달 된 경우에도 시스템이 더 안전합니다 (보고 서버 사용자 자격 증명을 가짜로 만드는 것이 훨씬 더 힘들다는 가정하에 웹 사용자에게 묶여 있기 때문에). –

+0

내 진짜 요점은 SSRS에보고 그룹 및 관련 권한을 설정하는 시스템이있는 경우 내 시스템을 롤업하는 대신이 시스템을 사용하는 것이 더 낫다는 것입니다. 나는 내 자신을 사용하는 것이 아마도 보고서 서버 사용자의 확산을 줄이는 것이 좋을 것이라고 생각하지만 나는 초보자로서 잘못된 방식으로이 문제를 조사하고 있습니다. 모든 의견이 감사합니다. –

+0

다른 의견이 있으십니까? 이 질문을 닫고 며칠 후에 Jamie F의 대답을 수락합니다. –