2009-02-11 5 views
4

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

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

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

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

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

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

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

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

ответ

2

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

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

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

+0

Fahad, эта учетная запись AD является несуществующим пользователем, просто используемым для SSRS? – cwius

+0

Да. Просто дайте достаточно разрешения на доступ к SSRS. Этот пользователь также должен иметь доступ к базе данных DataReader. – Fahad

+0

Я создал локального пользователя в окне SSRS и предоставил ему разрешение браузера для SSRS и разрешения datareader в базе данных SQL. Однако мой отчет не отображает никаких данных. Что мне не хватает? – cwius

1

+1 Фахад

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

ReportServerConnection credentials = new ReportServerConnection('username', 'password'); 
ReportViewer1.ServerReport.ReportServerCredentials = credentials; 
+0

Том, этот пользователь является пользователем AD, не так ли? – cwius

+0

Это правильно. Конструктор ReportServerConnection перегружен, чтобы также взять домен. – Tom

0

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

Reporting Services Single Sign On (SSO) Authentication - Part 1

Reporting Services Single Sign On (SSO) Authentication - Part 2

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

  1. Создать свой менеджер Validation, который будет обрабатывать аутентификации, специфичные для вашей системы
  2. Создайте свою страницу входа в систему для SSRS (наша страница, как и пример, просто вызывает LogonUser, а затем перенаправляет диспетчер отчетов). Это ne cessary только если вы хотите использовать SSRS в Report Manager
  3. После добавления ReportExecution2005 услуги ReportingService2010 & для вашего проекта вы хотите создать прокси-обертку вокруг них и переопределить методы GetWebResponse GetWebRequest & для того, чтобы передать билет аутентификации SSRS между SSRS и ваше приложение.
  4. Создайте свой собственный модуль аутентификации, который реализует IAuthenticationExtension & IAuthorizationExtension (см часть 2)
  5. Настройка SSRS использовать модуль
  6. аутентификации пользовательских форм Если вы хотите использовать диспетчер отчетов, то вы будете хотеть, чтобы убедиться, чтобы настроить SSRS Report Manager для обработки вашего приложения билета авторизации: Configure Report Manager to Pass Custom Authentication Cookies

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