Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server 2016 (13.x) Reporting Services и более поздних
версий Сервер отчетов Power BI
Службы Reporting Services 2016 представили новый веб-портал для размещения новых API OData, а также размещения новых рабочих нагрузок отчетов, таких как мобильные отчеты и ключевые показатели эффективности. Этот новый портал использует новые технологии и изолирован от знакомых ReportingServicesService.exe путем выполнения в отдельном процессе с именем Microsoft.ReportingServices.Portal.WebHost.exe. Этот процесс не является ASP.NET размещенным приложением и как такое прерывание предположений из существующих пользовательских расширений безопасности. Кроме того, текущие интерфейсы для пользовательских расширений безопасности не позволяют передавать внешний контекст, оставляя реализации единственным выбором для проверки известных глобальных ASP.NET объектов. Так как процесс Microsoft.ReportingServices.Portal.WebHost.exe не является ASP.NET размещенным приложением, некоторые изменения в интерфейсе были необходимы.
Что изменилось?
Был представлен новый интерфейс, который можно реализовать через IRSRequestContext, который предоставляет более распространенные свойства, используемые расширениями для принятия решений, связанных с проверкой подлинности.
В предыдущих версиях диспетчер отчетов был интерфейсным и может быть настроен с помощью собственной пользовательской страницы входа. В службах Reporting Services 2016 поддерживается только одна страница, размещенная на сервере отчетов, которая должна проходить проверку подлинности в обоих приложениях.
Внедрение
В предыдущих версиях расширения могли полагаться на общие предположения, что объекты ASP.NET будут доступны. Так как новый портал не запускается в ASP.NET, расширение может столкнуться с проблемами с объектами, имеющими значение NULL.
Наиболее универсальным примером является доступ к HttpContext.Current
данным запроса на чтение, таким как заголовки и файлы cookie. Чтобы разрешить расширениям принимать те же решения, мы представили новый метод в расширении, который предоставляет сведения о запросе и вызывается при проверке подлинности с портала.
Пользовательские расширения должны реализовать IAuthenticationExtension2 интерфейс, чтобы использовать этот новый интерфейс. Расширения должны реализовать обе версии GetUserInfo метода, так как один вызывается контекстом сервера отчетов и другим, используемым в процессе Microsoft.ReportingServices.Portal.WebHost.exe. В следующем примере показана одна из простых реализаций портала, где удостоверение, разрешенное сервером отчетов, используется.
public void GetUserInfo(IRSRequestContext requestContext, out IIdentity userIdentity, out IntPtr userId)
{
userIdentity = null;
if (requestContext.User != null)
{
userIdentity = requestContext.User;
}
// initialize a pointer to the current user ID to zero
userId = IntPtr.Zero;
}
Развертывание и конфигурация
Основные конфигурации, необходимые для настраиваемого модуля безопасности, совпадают с конфигурациями из предыдущих выпусков. Изменения необходимы для web.config и rsreportserver.config. Дополнительные сведения см. в разделе "Настройка пользовательской проверки подлинности" или "Формы" на сервере отчетов.
Для диспетчера отчетов больше нет отдельной конфигурации web.config, портал наследует те же параметры, что и конечная точка сервера отчетов.
Ключи компьютера
Для проверки подлинности форм, требующей расшифровки файла cookie проверки подлинности, оба процесса должны быть настроены с одним ключом компьютера и алгоритмом расшифровки. Этот шаг знаком пользователям, которые ранее настроили службы Reporting Services для работы с масштабируемыми средами, но теперь это требование даже для развертываний на одном компьютере.
Необходимо использовать ключ проверки, характерный для развертывания, существует несколько средств для создания ключей, таких как диспетчер службы IIS (IIS). Другие средства можно найти в Интернете.
Область применения: службы SQL Server Reporting Services (2017 и более поздние версии) Сервер отчетов Power BI
\ReportServer\RSReportServer.config
Откройте файл конфигурации RSReportServer.config, а в разделе вставьте <Configuration>
<machineKey>
созданный элемент. По умолчанию файл RSReportServer.config находится в \Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer\RSReportServer.config
службах Reporting Services и \Program Files\Microsoft Power BI Report Server\PBIRS\ReportServer\RSReportServer.config
для Сервер отчетов Power BI.
<MachineKey ValidationKey="[YOUR KEY]" DecryptionKey=="[YOUR KEY]" Validation="AES" Decryption="AES" />
Область применения: SQL Server Reporting Services (2016)
\ReportServer\web.config
Откройте файл web.config для ReportServer, а в <system.web>
разделе вставьте <machineKey>
созданный элемент. По умолчанию файл конфигурации Web.config расположен в папке \Program Files\Microsoft SQL Server\MSRS13. MSSQLSERVER\Reporting Services\ReportServer\web.config.
<machineKey validationKey="[YOUR KEY]" decryptionKey=="[YOUR KEY]" validation="AES" decryption="AES" />
\RSWebApp\Microsoft.ReportingServices.Portal.exe.config
Откройте файл конфигурации Microsoft.ReportingServices.Portal.WebHost.exe.config для RSWebApp, а в <configuration>
разделе вставьте <system.web>
созданный и <machineKey>
созданный элемент. По умолчанию файл конфигурации Microsoft.ReportingServices.Portal.WebHost.exe.config находится в папке \Program Files\Microsoft SQL Server\MSRS13. MSSQLSERVER\Reporting Services\RSWebApp\Microsoft.ReportingServices.Portal.WebHost.exe.config.
<system.web>
<machineKey validationKey=="[YOUR KEY]" decryptionKey=="[YOUR KEY]" validation="AES" decryption="AES" />
</system.web>
Настройка сквозных файлов cookie
Взаимодействие нового портала и сервера отчетов осуществляется через внутренние API-интерфейсы SOAP (аналогично предыдущей версии диспетчера отчетов). Если требуется передать дополнительные файлы cookie с портала на сервер отчетов, свойство PassThroughCookies доступно для использования. Дополнительные сведения см. в разделе "Настройка веб-портала для передачи пользовательских файлов cookie проверки подлинности".
<UI>
<CustomAuthenticationUI>
<PassThroughCookies>
<PassThroughCookie>sqlAuthCookie</PassThroughCookie>
</PassThroughCookies>
</CustomAuthenticationUI>
</UI>