使用 s-s-rS 2016 的自定义身份验证(安全扩展)

Posted

技术标签:

【中文标题】使用 s-s-rS 2016 的自定义身份验证(安全扩展)【英文标题】:Custom Authentication (Security Extension) with s-s-rS 2016 【发布时间】:2016-07-24 10:40:05 【问题描述】:

我正在尝试使用 s-s-rS 2016 实现自定义表单身份验证。

在this article 中,引用了SQL Server Reporting Service Product Samples。

示例页面上的最新支持版本(关于安全扩展)似乎是 s-s-rS 2012。我已成功地将示例页面上收集的信息应用于 s-s-rS 2014 实例。但是,看起来 s-s-rS 2016 的文件系统结构发生了一些变化(读取,不再有 ReportManager 文件夹),这似乎使示例页面提供的说明无效。

有人知道我在哪里可以找到建立自定义身份验证的更新程序吗?

【问题讨论】:

【参考方案1】:

我们偶然发现了位于 here 的 MSDN 论坛上的一个主题。该线程有很多活动,包括来自产品团队的回复。

对于在接下来的几周内获得自定义安全扩展以使用 s-s-rS 2016 时遇到问题的任何人,请查看。之后,据我了解,当产品处于 RTM 状态时,所有这些信息都将包含在文档中。

【讨论】:

是的。我使用了我在回答中引用的论坛帖子中的所有信息。我尚未确认是否有任何此类信息已纳入官方文档,因为我们已决定(或将很快决定)走不同的路线。 我正在尝试通过 IdentityServer 进行 oAuth 身份验证。你有没有机会发布一个你们如何成功的样本?文档仍未更新。【参考方案2】:

我最近做了这项工作。

我搜索了很多网站。这个例子对我有用: https://github.com/Microsoft/Reporting-Services/tree/master/CustomSecuritySample。 下面,在项目的例子下,有一个部署手册。

注意,在我的例子中,如果没有在文件中分配 machineKey,门户网站就无法工作:

...\Reporting Services\ReportServer\web.config ...\Reporting Services\RSWebApp\Microsoft.ReportingServices.Portal.WebHost.exe.config

一般来说,一切都如手册中所述。一步不漏。

我用来生成密钥的站点: http://www.developerfusion.com/tools/generatemachinekey/

我希望这些信息对某人有所帮助。

【讨论】:

这个方法对我不起作用;您是否逐字使用示例代码?我重构了一点(命名空间等)。我还更改了用户帐户的存储方式,并将散列算法更改为 bcrypt。没有什么应该会影响它的整体功能。我现在陷入了登录页面循环;有什么想法吗? 我建议首先按照手册中的步骤进行所有操作。这应该有效。然后逐渐改变配置,抓住会出错的地方。 我实际上能够做到这一点;但是,当我尝试创建文件夹以外的任何内容时,我遇到了问题。我还没有尝试上传任何报告。我认为我得到了一个空的 Identity 对象——这没有意义,因为它已经登录了。我假设你没有遇到这个? 按照我的步骤进行操作。这是 OP 链接中提供的完美 2016 版指南。 我很高兴我帮助了某人。【参考方案3】:

我认为您在获取用户名和密码或生成用户令牌方面没有问题,SQL Server 2016 中关于安全扩展的一些更改参考了 IAuthorizationExtension 接口中的 CheckAccess 函数。

在以下链接中,您可以找到更改和示例代码,特别是用于实施 SQL Server 2016 安全扩展。

Implementing a Security Extension

Configure Custom or Forms Authentication on the Report Server

Authorization in Reporting Services

IAuthorizationExtension.CheckAccess Method (String, IntPtr, Byte[], CatalogOperation)

【讨论】:

除了最后一个链接(在问题的上下文中用处不大),我已经阅读了这些链接所指向的文章很多次.这些文章似乎仍然缺少一些信息。更糟糕的是,正如我在问题中指出的那样,一些信息似乎已经过时了。也就是说,这些信息并没有太大帮助。我什至向 Microsoft 提出了一个咨询支持案例,但他们无法解决这个问题。 我们已将此问题报告给connect.microsoft.com/SQLServer/feedback/details/2664276 投票,以便得到 MSFT 的关注

以上是关于使用 s-s-rS 2016 的自定义身份验证(安全扩展)的主要内容,如果未能解决你的问题,请参考以下文章

WSO2 APIM 的自定义身份验证

ASP.Net-Core 中的自定义身份验证

与 parse-server 和 auth0 的自定义身份验证集成

s-s-rS 报告中的自定义数字格式

使用 aws amplify cognito 的自定义身份验证流程

使用 IdentityServer 与创建基于 JWT 的自定义身份验证