科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网服务器频道Windows集成身份认证登录SQL Server失败

Windows集成身份认证登录SQL Server失败

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在之前的技巧中,您讨论了由于在Active Directory中存在大量的组,需要超越MaxTokenSize来容纳更大的Kerberos tokens。当采用Kerberos身份验证时,无论是使用什么技术,对web应用程序的补救方法是相同的。

来源:IT专家网 2008年9月22日

关键字: 操作系统 身份认证 SQL Server Windows

  • 评论
  • 分享微博
  • 分享邮件

  问题

  在之前的技巧中,您讨论了由于在Active Directory中存在大量的组,需要超越MaxTokenSize来容纳更大的Kerberos tokens。与此同时,我们也注意到MaxTokenSize需要做出相应调整,这是由于使用Windows集成身份认证(Windows Integrated Authentication)的web应用程序也出现了启动失败的问题,其中包括SQL Server Reporting Services。我就职的公司做出了必要的改动并重新启动了SQL和Web服务器。启动后,尽管SQL Server Management Studio的问题解决了,但是我们的Web应用程序仍然存在问题。请问还需要再做什么改动呢?

  专家解答

  先前关于Kerberos Token sizes的方法解决了在以下目录的一段注册表中修改MaxTokenSize的问题:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters。不幸的是,当使用Windows集成身份验证(Windows Integrated Authentication)连接到SQL Server时,这并不是预设大小的唯一的地方。额外的两个值是MaxFieldLength 和MaxRequestBytes。与MaxTokenSize不同的是,当问题影响到web应用程序时,它呈现出不同的一点。默认情况下,Windows集成身份验证(Windows Integrated Authentication)在Internet Explorer中启用,在Internet Options | Advanced界面中显示如下:

图一

  当用户尝试用别名或者DNS名称访问网页时,DNS解析将尝试进行。因为规模较大的Kerberos token大小超过默认的MaxFieldLength,你将立即得到错误的信息。这与由于在输入地址和接收“网页无法显示”的错误信息存在时间差而导致一个网页无法找到的情况不同。这个难题中有趣的部分在于,如果尝试要么用主机名要么用别名来访问网页,它是不会成功的。尽管如此,网页可以通过IP地址访问。然而,在网页加载时任何SQL查询的执行都会失败。

  当遇到网站错误时,Internet Explorer的默认行为是显示用户界面友好的信息。你可以在如下显示的Internet Explorer中关闭这种行为。

图二

  这些用户界面友好的讯息将提供用于解决问题的信息。一旦你关掉用户界面友好的信息,你将看到如下的信息:

  图三

  如上所述,额外注册表项需要超越这些默认值。注册表项的位置取决于使用的Internet Information Server (IIS)的版本。

  IIS version Registry location

  IIS 5.0 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters

  IIS 6.0 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters

  Internet Information Services 5.0

  在IIS 5.0中,注册表项要求是MaxClientRequestBuffer DWORD项。Microsoft建议的DWORD值是32768。

  Internet Information Services 6.0

  在IIS 6.0中要求有两个注册表项。第一个是MaxFieldLength DWORD项。根据Microsoft的建议,DWORD值是65534。第二个是MaxRequestBytes DWORD,Microsoft的建议值是500000。

  一旦注册表项完成了,IIS Admin and dependent services需要重启,但是服务器不一定需要重启。原来的问题在Outlook Web Access中被发现,而补救方法在一篇有关Outlook Web Access的知识库文章中有所描述。当采用Kerberos身份验证时,无论是使用什么技术,对web应用程序的补救方法是相同的。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章