SSRS 2005 - настройка аутентификации / авторизации пользователя

Я создал веб-приложение ASP.NET 2.0 и хотел бы использовать SSRS 2005 для составления отчетов.

Веб-приложение использует аутентификацию форм и настраиваемые роли для авторизации. Я создал отчеты и развернул их в нашей коробке SQL Server 2005.

У меня есть два варианта для интеграции отчетов в мое приложение:

  1. Ссылка на SSRS из моего приложения. В ссылке будут указаны параметры и параметры. Я удостоверяюсь, что эта ссылка отображается только для авторизованных пользователей и содержит ссылки на правильный отчет с соответствующими параметрами.

  2. Используйте элемент управления ReportViewer и отображайте отчеты, используя это. Вся обработка будет выполняться SSRS

Тем не менее, я не уверен, что лучший способ настроить безопасность в IIS на поле служб отчетов. В настоящее время он установлен на встроенную проверку подлинности Windows. Также у службы отчетов есть мое имя пользователя с ролью браузера.

Не все пользователи моего приложения будут иметь логин AD. Также приложение находится в Интернете, и я не хочу открывать SSRS больше, чем необходимо. В то же время я хочу, чтобы это было для наших пользователей беспроблемным, поскольку я не хочу, чтобы SSRS запрашивал имя пользователя и пароль.

Каков наилучший способ сделать это? Должен ли я создать фиктивного пользователя AD и затем использовать его для связи между приложением ASP.NET и SSRS? Если нет, то как проще всего добиться всего, что мне нужно?

11.02.2009 21:28:35
3 ОТВЕТА

Мы общаемся с SSRS с помощью интерфейса веб-службы и с помощью элемента управления Report Viewer, используя одну и ту же учетную запись AD для всех пользователей. Что касается разрешений, у нас есть список настраиваемого доступа, который страница asp.net проверяет перед отправкой отчета пользователю. Это прикреплено к имени пользователя. Мы сохранили коробку SSRS в Интернете, и пользователь может получить к ней доступ только через приложение, поэтому достаточно контроля списка доступа.

Для управления представлением отчета нам нужно было создать пользовательский класс учетных данных для передачи имени пользователя и пароля AD, унаследованных от IReportServerCredentials . Имя пользователя и пароль AD хранятся в XML-файле.

Надеюсь это поможет.

2
11.02.2009 22:13:25
Fahad, эта учетная запись AD является несуществующим пользователем, просто используется для SSRS?
cwius 12.02.2009 13:56:02
Да. Просто достаточно дать разрешение на доступ к SSRS. У этого пользователя также должен быть доступ DataReader к базе данных.
Fahad 12.02.2009 16:53:07
Я создал локального пользователя в поле SSRS и дал ему разрешение браузера на SSRS и разрешение чтения данных в базе данных SQL. Тем не менее, мой репортер не отображает никаких данных .. что я пропускаю?
cwius 13.02.2009 17:12:01

+1 Фахад

Помимо использования интерфейса IReportServerCredentials, можно использовать экземпляр ReportServerConnection и назначить его элементу управления просмотра отчетов. Мы храним имя пользователя, пароль и домен (при необходимости) в файле web.config.

ReportServerConnection credentials = new ReportServerConnection('username', 'password');
ReportViewer1.ServerReport.ReportServerCredentials = credentials;
1
12.02.2009 02:13:50
Это правильно. Конструктор ReportServerConnection перегружен, чтобы также занять домен.
Tom 12.02.2009 23:15:54

Недавно мы интегрировали метод SSO-аутентификации для SSRS (SQL Server 2008 R2) с нашим пользовательским веб-приложением, которое использует аутентификацию на основе форм. Я нашел эти две статьи очень полезными и обрисовал в общих чертах все, что нам нужно было сделать для реализации нашего единого решения.

Аутентификация единого входа (SSO) служб Reporting Services - часть 1

Аутентификация единого входа (SSO) служб Reporting Services - часть 2

Вот основные шаги, но я предлагаю вам полностью прочитать эти статьи:

  1. Создайте свой менеджер валидации, который будет обрабатывать аутентификацию, специфичную для вашей системы
  2. Создайте страницу входа для SSRS (наша страница, как и пример, просто вызывает LogonUser, а затем перенаправляет в диспетчер отчетов). Это необходимо, только если вы хотите использовать диспетчер отчетов SSRS.
  3. После добавления сервисов ReportingService2010 и ReportExecution2005 в ваш проект вы захотите создать оболочку Proxy вокруг них и переопределить методы GetWebRequest и GetWebResponse, чтобы передать билет SSRS-аутентификации между SSRS и вашим приложением.
  4. Создайте свой пользовательский модуль аутентификации, который реализует IAuthenticationExtension & IAuthorizationExtension (см. Часть 2)
  5. Настройте SSRS для использования вашего модуля проверки подлинности пользовательских форм
  6. Если вы хотите использовать диспетчер отчетов, то вам необходимо настроить диспетчер отчетов SSRS для обработки заявки на авторизацию приложений: настроить диспетчер отчетов на передачу пользовательских файлов cookie для проверки подлинности

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

0
19.10.2012 14:28:51