SSRS 2016本机双跳Windows身份验证

jos*_*orr 2 sql authentication reporting-services kerberos-delegation sql-server-2016

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

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

  1. 在报表服务器上设置组策略以启用凭据委派
  2. 确保报表服务器上的SSRS和MSSQLsrv为运行这两种服务的服务帐户设置了正确的SPN:
    • http/NetBIOS:80域\ servicename
    • http/FQDN.contoso.com:80 domain\servicename
    • mssqlsvc/FQDN.contoso.com:1433 domain\servicename
  3. 在服务帐户上启用Kerberos委派,并确保"帐户敏感且无法委派".框未选中
  4. 将标记切换到RSWindowsNegotiate/RSReportServer.config文件中的< >
  5. 重新启动了服务

尝试连接报表服务器上的数据源时,我们仍然收到错误,甚至通过浏览器连接到网页时也出现问题.奇怪的是,我们尝试在报表服务器上设置链接服务器,配置安全性以在执行命令的用户下运行,并且能够在链接服务器上成功执行双跳,但仍然不能从SSRS执行.

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

jos*_*orr 5

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

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

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

结果了解到,只要数据源sql服务器具有正确的SPN并且OU委派与此类型的Kerberos委派无关,那么它在哪个服务帐户上运行并不重要.