繁体   English   中英

在不提示身份验证的情况下查看来自 Web 应用程序的报告 - Reporting Services 2017

[英]View Report From Web Application Without Prompting Authentication - Reporting Services 2017

我公司刚刚完成了一个2017年的报表服务服务器。该服务在一个域名下运行。 在同一台服务器上,已设置 IIS 以在 ASP.NET 中运行 Web 应用程序,该应用程序将从报表查看器提供报表。 IIS 当前正在使用默认应用程序池运行。

目标:我们希望客户能够从 Web 应用程序访问报告,而无需在 Intranet 或 Internet 上的任何地方填写用户名和密码。

在此之前,我们有具有类似设置的 ssrs 2008,但对于身份验证,我们使用匿名身份验证,这正是我们想要的,他们可以从任何地方查看报告。 但是从微软网站上,他们表示最新版本不再支持身份验证,我们尝试这样做会导致错误 401:未经授权。

目前,我正在尝试进行 kerberos 身份验证,我做过的事情:

  1. 报告服务帐户的 SPN。
  2. 报告服务帐户的委托。
  3. Web 应用程序 web.config 我添加了 authentication mode="Windows" identity impersonate="true"
  4. 在 IIS 上,我启用了 Windows 身份验证和模拟。

但是当我尝试从 Web 应用程序请求报告时,我仍然提示输入用户名和密码,当我填写我的域和密码时,我仍然收到相同的错误 401:未授权。

难道我做错了什么? Kerberos 真的适合我的目标吗?

提前致谢。

编辑:对不起,如果我在错误的部分发帖。 我不知道这个问题的正确部分在哪里。

当您计划在 Internet 上部署报告服务时,它会使用自定义身份验证而不是 Windows 身份验证。 创建自定义身份验证扩展需要自定义代码和 ASP.NET 安全方面的专业知识。

如果不想编写自定义身份验证扩展插件,可以使用 Microsoft Active Directory 组和帐户,但应大大缩小报表服务器部署的范围。 以下指南描述了如何支持这种情况:

  • 创建具有只读权限的低特权域用户帐户。 该帐户必须有权访问托管报表服务器的计算机。 提供自定义 Web 表单,以便用户可以使用低权限域帐户登录。

  • 创建将用户帐户映射到报表服务器文件夹层次结构中的特定项目的角色分配。 您可以通过选择浏览器预定义角色作为角色分配来限制对只读操作的访问。

  • 配置报告以使用存储的凭据来获取报告的数据。 如果要使用与允许访问报表服务器的帐户不同的帐户来查询外部数据源,则此方法很有用。

您可以参考以下链接了解更多详情:

https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2005/bb283249(v=sql.90)?redirectedfrom=MSDN#configuring-authentication-for-extranet-and-internet -使用权

https://docs.microsoft.com/en-us/sql/reporting-services/security/authentication-with-the-report-server?view=sql-server-ver15

https://forums.asp.net/t/2095478.aspx?401+Unauthorized+SSRS+authentication+from+NET+IIS

https://forums.asp.net/t/1273411.aspx?Setting+up+Reporting+Services+with+IIS+Access+Denied+Error

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM