SSRS 2016本机双跳Windows身份验证

时间:2016-10-26 04:29:02

标签: sql authentication reporting-services sql-server-2016 kerberos-delegation

我自己和另一个管理员一直在尝试解决我们的新报告服务器上的双跳身份验证问题(报告以经过身份验证的用户身份运行,但无法委托给数据源并返回'NT Authority \ Anonymous'身份验证错误)我们似乎正在走向死胡同。以下是我们的设置。

我们在一台服务器上安装了SSRS 2016,我们的报告数据源位于另一台服务器上。我们已完成以下步骤以尝试启用身份验证

  1. 在报表服务器上设置组策略以启用凭据委派
  2. 确保报表服务器上的SSRS和MSSQLsrv为运行这两种服务的服务帐户设置了正确的SPN:
    • http / NetBIOS:80 domain \ servicename
    • http / FQDN.contoso.com:80 domain \ servicename
    • mssqlsvc / FQDN.contoso.com:1433 domain \ servicename
  3. 在服务帐户上启用Kerberos委派,并确保“帐户敏感且无法委派”。未选中框
  4. 将标记切换为< RSWindowsNegotiate/>在RSReportServer.config文件中
  5. 重新启动服务
  6. 我们在尝试连接报表服务器上的数据源时仍然收到错误,甚至在通过浏览器连接到网页时出现问题。奇怪的是,我们尝试在报表服务器上设置链接服务器,配置安全性以在执行命令的用户下运行,并且能够在链接服务器上成功执行双跳,但仍然不能从SSRS执行。

    数据源是否需要在服务帐户下运行,还是可以在SQL的本地服务帐户下运行?服务帐户是否需要具有服务器所在的OU的委派权限?我可能还缺少哪些其他物品?

1 个答案:

答案 0 :(得分:5)

我们终于在6个多月后解决了这个问题。

为SSRS服务帐户设置SPN(您只需要http / NetBIOS:80 domain \ servicename和http / FQDN.contoso.com:80 domain \ servicename)后,您需要在SSRS服务帐户上设置“委派”选项卡包含"信任该用户以授权任何服务"或者在"信任该用户以仅授权给指定的服务......"从您尝试查询的数据源中选择MSSQLSRV服务。

我们错误地认为此委托用于指定需要允许报表服务器上的哪些服务通过Kerberos票证,而不允许此服务帐户允许哪些服务器代表用户发送它们。

结果了解到,只要数据源sql server具有正确的SPN并且OU委派与此类Kerberos委派无关,那么服务帐户的运行方式并不重要。