Безопасность веб-службы SSRS

У меня есть веб-приложение ASP.NET, которое использует вызовы веб-служб SSRS ReportService2005.asmx и ReportExecution2005.asmx.

Используемая технология - ASP.NET 3.5, Visual Studio 2008 и SQL Server 2008 R2 (я использую ReportService2005, так как использую библиотеку кода, которая использует это, а не ReportService2010).

Пользователь входит в систему, используя проверку подлинности с помощью форм. Затем пользователь переходит на страницу отчета. Пользователь может принадлежать к любому количеству групп отчетов (каждая группа может содержать любое количество отчетов). Группы отчетов, связанные с ними отчеты и пользователи, назначенные группам отчетов, управляются страницей в веб-приложении и хранятся в серии таблиц в базе данных веб-приложения (НЕ в базе данных SSRS).

В настоящее время доступ к ReportService2005.asmx и ReportExecution2005.asmx достигается с использованием учетных данных сервера по умолчанию. Это безопасно? Все отчеты на сервере будут доступны через эти учетные данные по умолчанию. Единственное ограничение на отчеты, которые может видеть пользователь, будет наложено на интерфейсное приложение, которое предположительно может быть взломано с помощью, например, Javascript?

Мне нужен метод, в котором я могу избавиться от ряда таблиц отчетов / пользователей / групп в базе данных веб-приложения и использовать схему SSRS. Например:

Пользователь A (сотрудник компании A) принадлежит к группе финансовых отчетов и группе маркетинговых отчетов. Группа «Финансы» содержит финансовый отчет 1 и Финансовый отчет 2. Группа «Маркетинг» содержит маркетинговый отчет 1.

Вышеупомянутые отчеты будут помещены в папки «Финансы» и «Маркетинг» на сервере отчетов (с помощью диспетчера отчетов).

Затем я мог бы создать пользователя Windows (назовем его MarketingFinance) на сервере отчетов и дать этому пользователю соответствующие разрешения для папок Marketing и Finance. В этом случае пользователю A потребуется какой-то флаг в своем профиле .net membershipprovider для связи с пользователем MarketingFinance.

Проблема с этим заключается в том, что я предполагаю, что новый пользователь Windows должен создаваться на сервере отчетов каждый раз, когда создается / изменяется настраиваемая группа отчетов. Используя приведенный выше пример, скажем, что группа отчетов о продажах создана и к ней добавлен пользователь B. Теперь на сервере отчетов должен быть пользователь Windows (Продажи) с соответствующими разрешениями, установленными для доступа к папке Продажи. Также нескольким клиентам веб-приложения потребуются собственные версии групп продаж / маркетинга и т. Д., Что потенциально увеличивает количество пользователей Windows до многих тысяч!

Я новичок в SSRS, поэтому могу неправильно смотреть на это - могу ли я использовать роли, чтобы упростить эту проблему?

Кроме того, отчеты, вероятно, будут в основном одинаковыми для разных компаний (под компанией я имею в виду клиента приложения), но каждая компания может захотеть, чтобы отчеты были настроены в разных папках. то есть в папке Финансы компании A есть отчет A, отчет B и отчет C, но в папке финансов компании B есть только отчет A. Предположительно, ссылки на отчеты избавят меня от необходимости иметь 2 физических копии отчета A в обеих папках?


person Richard Knight    schedule 02.11.2011    source источник


Ответы (1)


У вас есть несколько разных вопросов, объединенных в один, но я постараюсь ответить на фундаментальный вопрос: «Повысит ли настройка доступа SSRS с несколькими отдельными учетными записями мою безопасность?»

... Это безопасно?

Безопасность - это не двоичная вещь: вопрос следует перефразировать как «Достаточно ли это безопасно?» И ответ на этот вопрос зависит от данных, которые вы храните, уязвимости приложения и других факторов. (На данные о продажах во внутреннем приложении компании следует дать другой ответ, чем на результаты исследований и разработок крупной фирмы, опубликованные в Интернете.)

Единственное ограничение на отчеты, которые может видеть пользователь, будет наложено на интерфейсное приложение, которое предположительно может быть взломано с помощью, например, Javascript?

Похоже, что разделение пользователей служб Reporting Services на разные учетные записи не помогает решить эту проблему. Если кто-то может сейчас перейти на страницу другого пользователя, что изменит учетные данные SSRS? Если вы полагаетесь на клиентский Javascript для предоставления отчета SSRS, к которому они должны получить доступ, вам следует проверить это на стороне сервера, чтобы убедиться, что они не запрашивают что-то неправильное.

Я бы сосредоточился на том, чтобы убедиться, что сервер SSRS не доступен напрямую из Интернета, а затем я бы работал над защитой вашего приложения. Если у вас есть основания полагать, что ваш сайт уязвим из-за того, что кто-то изменил ваш Javascript, тогда устраните эту проблему.

Разделение доступа пользователей к SSRS по разрозненным хранилищам не имеет для меня особого смысла в качестве меры безопасности, если только ваше внешнее приложение не имеет очень отдельных разрозненных хранилищ. Это может сделать вещи управляемыми и избежать ошибок, но я не вижу особой дополнительной безопасности.

(Кроме того, предлагаемое вами решение добавит где-то еще хранящихся паролей, и они обычно заслуживают небольшой дополнительной защиты, поэтому вы можете создать более серьезную проблему.)

Это точка зрения одного компьютерщика; ваш пробег может отличаться; мои два цента...

person Jamie F    schedule 02.11.2011
comment
Спасибо за ответ. Проблема безопасности Javascript была небольшой - на самом деле это просто мысль. Все отчеты имеют числовой идентификатор, и я подумал, что можно подменить идентификатор на сервере, и поскольку есть один пользователь сервера отчетов с доступом ко всем отчетам, это может поставить под угрозу безопасность. Если бы каждый веб-пользователь имел доступ только к подмножеству отчетов, и этот веб-пользователь был привязан к пользователю сервера отчетов, тогда даже если бы был передан поддельный идентификатор, система была бы более безопасной (при условии, что гораздо сложнее подделать учетные данные пользователя сервера отчетов, что она будет так, как они привязаны к веб-пользователю). - person Richard Knight; 03.11.2011
comment
Я действительно хочу сказать, что если в SSRS есть система настройки групп отчетов и связанных разрешений, будет ли мне лучше использовать эту систему, а не развертывать свою собственную? Я думаю, что использование моего собственного, вероятно, было бы лучше, чтобы уменьшить распространение пользователей сервера отчетов, но, поскольку я новичок, я могу неправильно смотреть на проблему. Все комментарии приветствуются. - person Richard Knight; 03.11.2011
comment
Есть другие комментарии? Я закрою этот вопрос и приму ответ Джейми Ф. через пару дней. - person Richard Knight; 24.11.2011