четверг, 7 июня 2018 г.

How to grant anonymous access to SSRS reports. Предоставление анонимного доступа к SSRS отчетам

Начиная с SQL 2005, анонимный доступ к SSRS перестал быть поддерживаемой опцией и предоставление его является задачей нетривиальной и небезопасной. Различные ресурсы (например, этот https://blogs.msdn.microsoft.com/jameswu/2008/07/15/anonymous-access-in-sql-rs-2008/ ) описывают модификацию SSRS инстанса с целью выключить любую аутентификацию, кроме анонимной (включая компиляцию собственного authentication extension), однако это, во первых, оверкилл, а во вторых - предоставит доступ ко всем вашим репортам, а не только, например, к определенной папке.
Однако, легкий способ сделать это - написать простой reverse proxy server, который бы принимал анонимные запросы и транслировал бы их в SSRS. Этот прокси вполне можно развернуть на том же сервере, что SSIS и гибко настроить его для предоставления доступа к строго определенной папке.

Как это сделать?
1. Скомпилировать прокси сервер и развернуть его на том же сервере, что и SSRS, например в папку Default Web Site/SSRSANON;
2. Поменять web.config под ваши нужды;
2. Настроить Application Pool для этого приложения: он должен быть не менее версии 4.0, classic и ApplicationPoolIdentity = аккаунт, который имеет доступ к папке с репортами;
3. Обратиться к репорту, используя URL типа http://YourReportServer/Report=MyReport,par1=val1,par2=val2..../

Прокси-сервер основан на коде, описанном в этой статье:
https://www.codeproject.com/Articles/7135/Simple-HTTP-Reverse-Proxy-with-ASP-NET-and-IIS#_comments