Как настроить / включить аутентификацию на основе форм в SSRS 2008 RS
У меня есть два отчета, один для внутренних пользователей, а другой для внешних пользователей,
Для внутренних пользователей мне нужно включить проверку подлинности формы для просмотра отчета вместо создания учетных записей пользователей на сервере.
Для внешних пользователей я не хочу включать какую-либо аутентификацию, чтобы они могли получить доступ к отчету из браузера без какой-либо аутентификации.
Я следовал приведенным ниже шагам, используя образцы SSRS по ссылке ниже, после того, как сделал все изменения, я получаю ошибку HTTP500. Пожалуйста, помогите включить эту форму аутентификации.
изменить файл RSReportServer.config
Шаг 1:-
<Authentication>
<AuthenticationTypes>
<Custom/>
</AuthenticationTypes>
<EnableAuthPersistence>true</EnableAuthPersistence>
</Authentication>
Шаг 2:-
<Security>
<Extension Name="Forms"
Type="Microsoft.Samples.ReportingServices.CustomSecurity.Authorization,
Microsoft.Samples.ReportingServices.CustomSecurity" >
<Configuration>
<AdminConfiguration>
<UserName>username</UserName>
</AdminConfiguration>
</Configuration>
</Extension>
</Security>
<Authentication>
<Extension Name="Forms" Type="Microsoft.Samples.ReportingServices.CustomSecurity.AuthenticationExtension, Microsoft.Samples.ReportingServices.CustomSecurity" />
</Authentication>
Шаг 3:-
<UI>
<CustomAuthenticationUI>
<loginUrl>/Pages/UILogon.aspx</loginUrl>
<UseSSL>True</UseSSL>
</CustomAuthenticationUI>
<ReportServerUrl>http://<server>/ReportServer</ReportServerUrl>
</UI>
изменить файл RSSrvPolicy.config
Шаг 4:-
<CodeGroup
class="UnionCodeGroup"
version="1"
Name="SecurityExtensionCodeGroup"
Description="Code group for the sample security extension"
PermissionSetName="FullTrust">
<IMembershipCondition
class="UrlMembershipCondition"
version="1"
Url="C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin\Microsoft.Samples.ReportingServices.CustomSecurity.dll"
/>
</CodeGroup>
изменить файл RSMgrPolicy.config
Шаг 5:-
<CodeGroup
class="FirstMatchCodeGroup"
version="1"
PermissionSetName="FullTrust"
Description="This code group grants MyComputer code Execution permission. ">
<IMembershipCondition
class="ZoneMembershipCondition"
version="1"
Zone="MyComputer" /> "}*To use Forms Authentication, you need to modify the Web.config files for Report Manager and Report Server
изменить файл Web.config для сервера отчетов
Шаг 6:-
<authentication mode="Forms">
<forms loginUrl="logon.aspx" name="sqlAuthCookie" timeout="60" path="/">
</forms>
</authentication>
Add the following <authorization> element directly after the <authentication> element.
<authorization>
<deny users="?" />
</authorization>.
Файл Web.config для диспетчера отчетов
Шаг 7:-
Disable impersonation by locating the section <identity impersonate= "true" /> and changing it to the following: <identity impersonate="false" />.
Locate the <authentication> element and change the Mode attribute to Forms.
Add the following keys to the <appSettings> element.
<add key="ReportServer" value="<Server Name>"/>
<add key="ReportServerInstance" value="<Instance Name>"/>
После выполнения всех вышеперечисленных шагов, когда я пытаюсь зарегистрировать пользователя, я получаю сообщение об ошибке "Не поддерживается ключевое слово": "mssqlserver; встроенная защита".
0 ответов
Пожалуйста, отметьте этот параметр, чтобы получить прямой доступ без аутентификации с помощью формы.
<allow users="*" />
Отметьте эту строку, чтобы показать аутентификацию с помощью формы.
<deny users="?" />
Настройка web.config в приложении.
<authorization>
<allow roles="Administrator" />
<allow users="*" />
</authorization>
<authentication mode="Forms">
<forms timeout="500000" loginUrl="Login.aspx" />
</authentication>
<system.web>
<httpHandlers>
<remove verb="*" path="*.asmx" />
<add verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false" />
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</httpModules>
<webServices>
<protocols>
<add name="HttpGet" />
<add name="HttpPost" />
</protocols>
</webServices>
</system.web>
Я думаю, вы могли просто пропустить шаг или где-то допустить небольшую опечатку.
Следуйте этому пошаговому руководству для SSRS 2008* Custom Auth (в нем указано 2016, но будет работать и в 2008 году, если вы используете правильные каталоги ReportServer и т. Д.): https://github.com/microsoft/Reporting-Services/tree/master/CustomSecuritySample2016
* Я вижу, вы спрашиваете о 2008 году, но у меня есть настраиваемая проверка подлинности для работы с реализациями SSRS SQL Server 2012 и 2014 годов с использованием https://github.com/microsoft/Reporting-Services/tree/master/CustomSecuritySample2016.
Для SSRS 2019 и выше используйте это в качестве руководства (похожие, но заметные различия): https://github.com/microsoft/Reporting-Services/tree/master/CustomSecuritySample
Вы можете делать некоторые интересные вещи с настраиваемыми классами авторизации и аутентификации, и вам не нужна промежуточная форма (просто перенаправьте на Page_Load(), если ваш пользовательский запрос содержит правильный токен / файл cookie / зашифрованный материал, который вы хотите проверить на безопасность).