如何在 Reporting Services 2008 r2 环境中管理 Kerberos 身份验证问题

Posted

技术标签:

【中文标题】如何在 Reporting Services 2008 r2 环境中管理 Kerberos 身份验证问题【英文标题】:how to manage Kerberos Authentication Issues in a Reporting Services 2008 r2 Environment 【发布时间】:2012-01-04 15:19:57 【问题描述】:

我的 s-s-rs 2008 报告很少。我创建了用户组并为该组授予了所有必需的权限。

现在,当我运行这些报告时,我遇到了奇怪的错误。

用户“NT AUTHORITY\ANONYMOUS LOGON”登录失败

我不知道它是从哪里来的。

我得到建议,这是与 Kerberos 身份验证有关的问题。请知道如何解决此问题的人告诉我。

或者有人知道解决这个 kerberos 问题,如果可能的话,也请分步告诉我。

谢谢

维克

【问题讨论】:

可能是double hop 问题。 你能给出解决方案吗 双跳问题与 NTLM 有关。你能告诉我们更多关于架构的信息吗?您正在使用 s-s-rS,但可以通过多种不同方式进行部署。用户是通过标准报表管理器还是通过 SharePoint 或通过某种自定义 Web 前端访问? 用户正在通过标准报表管理器servername/reports 访问。在开发环境报告工作正常。甚至用户也可以访问它们。但在测试环境中,我收到了这个令人讨厌的登录错误。 报告已在 s-s-rs 2008 r2 中创建。部署在指定的开发和测试服务器中。在开发中工作正常但具有相同的权限我在测试中遇到错误。 【参考方案1】:

您的报表是否使用直通集成身份验证、定义的用户集成身份验证或 sql 用户身份验证?我怀疑第一个,在这种情况下,您正在处理模拟和委托之间的区别。

当使用集成身份验证连接到 Web 服务器时,您实际上是在使用 NTLM 或 Kerberos。两者都允许运行您的 Web 服务器的进程充当您的角色。 NTLM 通过安全令牌进行的模拟会阻止服务器以您的身份连接到另一个另一个服务器(即连接到数据库服务器)并再次以您的身份在该服务器上运行——这就是“双跳”问题。 Kerberos 改为使用委托,传递一个票证,每个服务器都可以检查其有效性并允许。

要让 Kerberos 正常工作,有几个要求。

如果您使用主 DNS 名称以外的名称(用作别名)连接到 Web 服务器,您必须使用 SetSPN 将别名注册为对机器有效。即使没有这个,您也可能会遇到 SPN(服务主体名称)问题。仔细检查您服务器上的 SPN,看看它是否符合您的预期。 您最初连接的服务器必须在您的域策略中为“委托授权”。 运行您的网络服务器的用户也必须是“受信任的委托”。

您可以通过让您的报告存储某种形式的凭据而不是使用直通身份验证来解决所有这些问题。

dev 和 test 之间的区别可能是 IIS 用户,也可能是数据源。

现在,我在这里假设您没有使用 SharePoint,而只是进行正常的 s-s-rS Web 安装。所以如果这不正确,请说出来。

【讨论】:

以上是关于如何在 Reporting Services 2008 r2 环境中管理 Kerberos 身份验证问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SQL Server Reporting Services 2008 中复制报表

Reporting Services:如何对矩阵列应用交互式排序?

如何添加筛选器 (Reporting Services)

如何在 Reporting Services 2008 r2 环境中管理 Kerberos 身份验证问题

带有 SQL Server 2008 的 Visual Studio 2005 Reporting Services [重复]

我们如何分配权限来设置 SQL Server Reporting Services