SSRS 2017 веб-портал формы аутентификации доступа проблема - PullRequest
0 голосов
/ 19 октября 2018

Я реализовал пользовательскую аутентификацию (на основе аутентификации по формам) с использованием образца Microsoft (https://github.com/Microsoft/Reporting-Services/tree/master/CustomSecuritySample).

Это образец для SSRS / SQL Server 2017. В моем случае службы отчетов установлены в веб-тестесервер с адресом домена, доступным из сети интрасети. Ядро базы данных установлено на втором сервере. На веб-сервере также установлен IIS.

Похоже, что он работает нормально, за исключением доступа к веб-порталу. При доступевеб-портал (https://somedomain/reports) Я всегда перенаправлен на страницу logon.aspx, даже если я уже аутентифицирован (User.Identity.IsAuthenticated возвращает true, а User.Identity.Name возвращает правильное имя пользователя в logon_aspx.page_load).Установлен файл cookie проверки подлинности с помощью форм. Когда я аутентифицируюсь, я возвращаюсь из Page_Load, потому что в противном случае я бы получал бесконечный цикл перенаправления.

Но я заметил, что могу получить доступ к отчетам с помощью службы сервера отчетов (т.е. https://somedomain/ReportServer):

enter image description here

Я могу щелкнуть отчет, и он будет отображен.

Кроме того, я могу подключиться к службам Reporting Services с использованием аутентификации SSMS и Forms:

enter image description here

И я могу получить доступ к свойствам служб Reporting Services.Так что у меня полный доступ.Я подключаюсь, используя пользователя, у которого есть все разрешения, т.е. Authorization.IsAdmin всегда имеет значение true (см. Класс Authorization в примере).Этот класс реализует IAuthorizationExtension.

Но я заметил, что при доступе к веб-порталу метод Authorization.CheckAccess вообще не вызывается!Так что этот миг будет ключом.Вызываются только методы из класса AuthenticationExtension.Вот мои пользовательские журналы из этого класса:

Вызванный SetConfiguration.
Вызванный GetUserInfo.
GetUserInfo.Настройка личности пользователя.Аутентифицировано: 'True', тип: 'Forms', имя пользователя: вызвано SetConfiguration.
Вызвано GetUserInfo 2.
GetUserInfo.Настройка личности пользователя.Аутентифицировано: 'True', тип: 'Forms', имя пользователя: вызвано SetConfiguration.
Вызвано GetUserInfo.
GetUserInfo.Настройка личности пользователя.Аутентифицировано: «True», тип: «Forms», имя пользователя:

Я включил расширенное ведение журнала для служб Reporting Services (включая HTTP), но ошибки нет.

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

Так что это происходит только на тестовом сервере.И это происходит для http и https (независимо от того, какой протокол используется).

Я также сравнил журналы из локальной версии с тестовой версией, но я не нашел ничего интересного.

Итак/ отчеты о запросах перенаправляются в logon.aspx, даже если установлен файл cookie проверки подлинности форм:

enter image description here

Если я очищаю файлы cookie, я получаю еще несколько запросов доcookie установлен, но последний запрос к / reports должен быть успешным (как в локальном окружении), но в моем случае он перенаправляет обратно на logon.aspx.

Я потратил два дня на устранение этой проблемы.(пробуя разные вещи) но безуспешно.Кто-нибудь может мне помочь с этим?

PS Извините за мой английский.

Ответы [ 3 ]

0 голосов
/ 30 апреля 2019

У меня была такая же проблема, решение в диспетчере конфигурации служб отчетов - изменить URL-адрес веб-службы и URL-адрес диспетчера отчетов, они не должны совпадать, и URL-адрес, к которому необходимо получить доступ, должен быть тем, который вы настроиликак URL менеджера отчетов, извините за мой английский

0 голосов
/ 07 мая 2019

Я решил проблему.Я только что переустановил SSRS, и это помогло.Похоже, моя установка как-то повреждена.

0 голосов
/ 27 ноября 2018

Была похожая ситуация, как вы описали, хотя до этого все работало на ssrs 2017!Запустил последнее обновление 12.09.2008, версия 14.0.600.892, и о чудо, все работает !!Советую попробовать обновить SSRS 2017 до последней версии.

...