Как вы получаете службы отчетов SQL 2008 для безопасной работы для нескольких приложений? - PullRequest
0 голосов
/ 11 февраля 2009

У нас есть установка, в которой у нас есть несколько экземпляров приложения - по одному экземпляру для каждого клиента.

Мы вызываем многие наши отчеты через URL, передавая параметры в строке запроса.

В начале, когда мы были в 2005 году, мы обнаружили проблему с этим: я мог бы немного изменить строку запроса и получить доступ к чужим данным.

Мы обошли проблему, обманув пользователя.

Теперь, из-за некоторой неустойчивой нестабильности в нашей установке сервисов отчетов 2005 года, мы берем возможность перейти на 2008 год. Однако ситуация с подделкой больше не работает.

Статьи Technet, которые выглядят актуальными, похоже, говорят о том, что нам необходимо создать очень большое расширение безопасности ( article ). Это похоже на излишество. Конечно, есть более простой способ вызвать отчет на основе URL.

Как вы выполняете это в своих приложениях?

Примечание: Это репост (перефразированный) вопроса моего коллеги. Он не получил никаких ответов, и, поскольку у него нет репутации, он не смог опробовать систему вознаграждений. Я перефразировал это и решил дать этому водоворот. Пожалуйста, будьте терпимы - нам действительно нужен ответ на этот вопрос. :)

1 Ответ

1 голос
/ 13 февраля 2009

Мне любопытно, что вы делали в 2005 году для подмены пользователей, которая не работала в 2008 году?

Но, на самом деле, для меня это звучит так, как будто вы, вероятно, должны использовать пользовательскую аутентификацию. Пример, на который вы ссылаетесь, на самом деле довольно хорошо объясняет, что происходит, и помогает вам пройти через основы. У меня была такая же проблема, как и у вас, когда у нас много клиентов, получающих доступ к отчетам, и крайне важно, чтобы у одного клиента не было доступа к данным другого клиента.

В итоге я написал специальное расширение для аутентификации, которое создает специфичные для клиента папки и права доступа только для конкретного конкретного пользователя (которого я установил через пользовательскую аутентификацию). Доступ к браузеру для всех отчетов в этой папке.

Я бы также посоветовал вам взглянуть на http://www.gotreportviewer.com/, если вы пишете приложение, которое находится за пределами области / Reports /. К сожалению, я узнал, что это произошло после того, как потратил слишком много времени на свою схему аутентификации.

Удачи!

...