使用Kerberos委派的SSAS会收到连接超时错误

时间:2013-11-22 04:19:03

标签: sql-server asmx ssas kerberos delegation

我遇到连接到我的webservice(存在于另一台服务器上)的客户端必须访问SQL Server数据库和SSAS服务器的情况。

在访问SQL Server和SSAS多维数据集时,它必须使用调用服务的客户端的凭据。

为此,我这样做

var winId = HttpContext.Current.User.Identity as WindowsIdentity; var ctx = winId.Impersonate(); //访问数据库/ SSAS ctx.Undo();

在我的服务中,在访问SQL Server数据库时工作正常。

然而,当我访问SSAS服务器时,我得到了 “连接超时或丢失”

有很多帖子都喜欢 http://denglishbi.wordpress.com/2009/03/31/windows-server-2008-kerberos-bug-%E2%80%93-transport-connection-issues-with-ssas-data/ http://sqlblogcasts.com/blogs/drjohn/archive/2009/03/28/kerberos-kills-large-mdx-queries-on-windows-server-2008-ssas.aspx

就此而言我使用的是Windows Server 2008 R2 我的服务所在的地方所以这应该不是问题,因为这个错误应该由Microsoft修复。

有关如何最好地诊断此问题的任何信息将不胜感激。

澄清SSAS服务器确实有SPN。这实际上是在一点上工作但现在已经停止了。没有任何重复的SPN或任何东西的迹象。

有趣的是,它在一台SSAS服务器上间歇工作,但似乎一直在为另一台SSAS服务器工作。 他们都已经按照本文件提到的SPN命名

https://support.pyramidanalytics.com/entries/22056243-Configuring-Kerberos-Delegation-for-Named-Instances-of-SSAS-with-Active-Directory-and-additional-pro

3 个答案:

答案 0 :(得分:1)

我的生产环境是一个非常大的企业Active Directory网络上的负载平衡(并且负载很重)。以下进行了大量测试,最终确定了有效的设置。

  • 我也在Windows 2008 Server R2上运行
  • 我的网络服务在IIS中的ASP.NET中。对于身份验证,我启用了“Windows Auth”和“ASP.NET Impersonation”。内核模式已禁用,提供程序为“Negotiate:Kerboros”
  • 为帐户设置SPNS和Trusted Delegation。我的AD帐户看起来像sys_myservice(sys_只是我公司的命名约定)
  • 应用程序池标识设置为使用sys_myservice
  • 在dev env中进行所有这些更改后,重新启动整个服务器。出于某些奇怪的原因,当我们引入新服务器并对其进行配置时,这总是必要的。

通过此设置,我的Web服务可以访问使用Windows Kerboros身份验证的SSAS,SQL Server等,并且所有查询都在用户凭据下正确执行。

我的设置与您的设置不同是IIS级别启用了ASP.NET模拟。我无法在代码中进行模拟,这正是您要做的事情。如果您使用代码级模拟来使用您的工作流程,我会非常有兴趣看到您发布更新。

忘了提。我的服务在MVC应用程序中,我对所有Action方法应用全局过滤器以强制应用程序验证所有连接。

    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
        filters.Add(new System.Web.Mvc.AuthorizeAttribute());
    }

和我的web.config system.web部分

<authentication mode="Windows" />
<identity impersonate="true" />

答案 1 :(得分:1)

我同意间歇性'成功'的SSAS实例是可疑的。我想知道它是否真的一直使用Kerberos。可以使用negotiate / NTLM和Kerberos的组合,一个auth方法实际工作,另一个接近失败。可能值得再看看SPN。此链接可能有所帮助:http://msdn.microsoft.com/en-us/library/dn194200.aspx

答案 2 :(得分:0)

您是否尝试过使用Wireshark或任何其他网络分析工具来查看在该故障点发生的任何红色事件?如果你提供更多的故障排除观察,可能会更好。

此外,您的网络服务是否有负载均衡器?

此致 萨西。