Как я могу получить доступ к ролям / разрешениям пользователей с помощью SSRS и BIDS Custom Security Extension? - PullRequest
5 голосов
/ 24 февраля 2012

Я написал и развернул настраиваемое расширение безопасности для SSRS 2008r2, и оно прекрасно работает независимо от попыток развертывания отчетов из BIDS 2008 / Visual Studio.

Архитектура для расширения безопасности обрабатывает входы через несколькоПолномочия и я управляем этим, создав пользовательский сеанс в LogonUser (), сохранив его в базе данных, а затем загрузив сеанс в прокси-классе клиента для веб-службы RS, используя UID, переданный cookie из службы, и переписав билет проверки подлинности.содержать UID сеанса плюс роли пользователя для текущего пользователя.Затем эти значения можно использовать в пользовательском расширении авторизации для управления разрешениями пользователей на действия и объекты SSRS.

Проблема, с которой я столкнулся , заключается в том, что она не работает при развертывании отчетов из BIDS,Он обращается к службе напрямую, и, следовательно, класс прокси-службы не требуется.Я попытался обработать событие после аутентификации в контексте HTTP, но, увы, cookie-файл сеанса не сохраняется службой RS, поэтому я не могу получить доступ к значениям сеанса.

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

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

Любая помощь будетБудем с благодарностью приняты!

Ответы [ 2 ]

2 голосов
/ 27 февраля 2012

Что ж, я отказался от поиска элегантного решения, поэтому я пошел по пути наименьшего сопротивления и следовал тому, что я собрал, - это руководящие указания SSRS о наличии «главной» учетной записи, которую я укажу для использования при развертывании отчетови подписки.Эта учетная запись должна быть жестко запрограммирована или извлечена из файла настроек. Я не уверен, есть ли другой способ.Приветствия.

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

2 голосов
/ 25 февраля 2012

Используете ли вы интерфейс IAuthenticationExtension? Следующая ссылка предоставляет хороший пример контроля доступа, если это то, что вам нужно. http://blogs.msdn.com/b/jameswu/archive/2008/07/15/anonymous-access-in-sql-rs-2008.aspx

Я бы предположил, что здесь можно отследить имя пользователя nt, а затем выполнить поиск по группам активных каталогов и т. Д. Основной головной болью, которую я здесь вижу, является включение правильной политики доверия в конфигурации политики ssrs.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...