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 개가 있어야하는 것을 방지 할 수 있습니까?
답장을 보내 주셔서 감사합니다. Javascript 보안 문제는 아주 작은 것이 었습니다. 보고서에는 모두 숫자 ID가 있으며 ID를 서버에 스푸핑 할 수 있다고 생각하고 모든 보고서에 액세스 할 수있는보고 서버 사용자가 한 명 있기 때문에 보안이 손상 될 수 있습니다. 각 웹 사용자가 보고서의 하위 집합에만 액세스 할 수 있고이 웹 사용자가보고 서버 사용자와 연결되어있는 경우 위조 된 ID가 전달 된 경우에도 시스템이 더 안전합니다 (보고 서버 사용자 자격 증명을 가짜로 만드는 것이 훨씬 더 힘들다는 가정하에 웹 사용자에게 묶여 있기 때문에). –
내 진짜 요점은 SSRS에보고 그룹 및 관련 권한을 설정하는 시스템이있는 경우 내 시스템을 롤업하는 대신이 시스템을 사용하는 것이 더 낫다는 것입니다. 나는 내 자신을 사용하는 것이 아마도 보고서 서버 사용자의 확산을 줄이는 것이 좋을 것이라고 생각하지만 나는 초보자로서 잘못된 방식으로이 문제를 조사하고 있습니다. 모든 의견이 감사합니다. –
다른 의견이 있으십니까? 이 질문을 닫고 며칠 후에 Jamie F의 대답을 수락합니다. –